Example #1
0
        public bool RunThresholdTest(HWndCtrl hWndCtrl, HObject imagein, out HObject hregion)
        {
            HObject region;

            HOperatorSet.GenEmptyObj(out region);
            hregion = null;
            if (imagein == null || !imagein.IsInitialized())
            {
                MessageBox.Show("二值化处理: image参数为空或者未赋值");
                return(false);
            }
            int minvalue = Convert.ToInt32(this.trackBar_min.Value);
            int maxvalue = Convert.ToInt32(this.trackBar_max.Value);

            HOperatorSet.Threshold(imagein, out region, minvalue, maxvalue);
            if (hregion != null)
            {
                if (hregion.IsInitialized())
                {
                    hregion.Dispose();
                }
            }

            //  HObject xy;
            //  HOperatorSet.ReduceDomain(imagein, region, out xy);
            hregion = region;
            return(false);
        }
Example #2
0
 /// <summary>
 /// <para>******************</para>
 /// Watch Gray Level (灰階
 /// <para>******************</para>
 /// </summary>
 /// <param name="viewPort"></param>
 private void setWatchGrayLevel(HWindowControl viewPort, HWndCtrl viewController)
 {
     if (viewPort != null)
     {
         viewPort.HMouseMove += (sender, e) =>
         {
             if (viewController == null)
             {
                 return;
             }
             var currImage = viewController.GetLastHImage();
             if (currImage != null)
             {
                 var row = (int)Math.Round(e.Y, 0);
                 var col = (int)Math.Round(e.X, 0);
                 try
                 {
                     HTuple width, height, grayval;
                     currImage.GetImageSize(out width, out height);
                     var mouseInImage = (row <= height.I && col <= width.I && row >= 0 && col >= 0);
                     if (mouseInImage)
                     {
                         HOperatorSet.GetGrayval(currImage, row, col, out grayval);
                         var dispText = grayval.I.ToString();
                         SetStatus(SystemStatusType.GrayLevel, dispText);
                     }
                 }
                 catch (Exception ex)
                 {
                     AddMessage(ex.Message);
                 }
             }
         };
     }
 }
        public void ShowResult(HWndCtrl viewCtrl)
        {
            //搜索范围
            viewCtrl.ChangeGraphicSettings(Mode.DRAWMODE, "margin");
            if (SearchRegion != null && SearchRegion.IsInitialized())
            {
                viewCtrl.ChangeGraphicSettings(Mode.COLOR, "blue");
                viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 2);
                viewCtrl.AddIconicVar(SearchRegion);
            }
            //确保已有模板
            if (createShapeModel.hShapeModel == null || !createShapeModel.hShapeModel.IsInitialized() || createShapeModel.createNewModelID)
            {
                if (!createShapeModel.CreateShapeModelAct(refImage))
                {
                    return;
                }
            }
            //获取仿射变换后的轮廓
            HXLDCont modelXldCont = createShapeModel.ModelXLDCont;

            if (row.Length < 1)
            {
                return;
            }
            GenDetectionXLDResults(modelXldCont);


            if (resultXLDCont != null && resultXLDCont.IsInitialized())
            {
                viewCtrl.ChangeGraphicSettings(Mode.COLOR, "blue");
                viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 2);
                viewCtrl.AddIconicVar(resultXLDCont);
            }
        }
 public void ShowImage(HWndCtrl viewCtrl)
 {
     if (ImageTestOut != null && ImageTestOut.IsInitialized())
     {
         viewCtrl.AddIconicVar(ImageTestOut);
     }
 }
Example #5
0
        /// <summary>
        /// Defines the initial settings for the window
        /// control. In the very beginning, the window control needs
        /// to know the view mode of the application form to perform
        /// the right behavior for incoming mouse events on the
        /// HALCON window.
        /// </summary>
        private void InteractiveForm_Load(object sender, System.EventArgs e)
        {
            String fileName = "patras";
            HImage image;

            viewController = new HWndCtrl(viewPort);
            roiController  = new ROIController();
            viewController.useROIController(roiController);
            viewController.setViewState(HWndCtrl.MODE_VIEW_NONE);

            try
            {
                image = new HImage(fileName);
            }
            catch (HOperatorException)
            {
                MessageBox.Show("Problem occured while reading file!",
                                "InteractROIForm",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                return;
            }

            viewController.addIconicVar(image);
            viewController.repaint();
        }
Example #6
0
        public EditHalconFormBase(bool showResult)
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;
            hWindow            = new HWindowControl();
            hWindow.Dock       = DockStyle.Fill;
            this.tabCurrent.Controls.Clear();
            this.tabCurrent.Controls.Add(hWindow);

            mView = new HWndCtrl(this.hWindow);
            mView.changeGraphicSettings(GraphicsContext.GC_LINESTYLE, new HTuple());

            createModelWindowMode = Color.RoyalBlue;
            trainModelWindowMode  = Color.Chartreuse;

            roiController              = new ROIController();
            roiController.ROISelected += RoiController_ROISelected;
            roiController.setROISign(ROIController.MODE_ROI_POS);

            mView.NotifyIconObserver       = new IconicDelegate(UpdateViewData);
            roiController.NotifyRCObserver = new IconicDelegate(UpdateViewData);

            mView.useROIController(roiController);
            mView.setViewState(HWndCtrl.MODE_VIEW_ZOOM_MOVE);

            halconEditable = this as IHalconEditable;

            this.nudSettlingTime.Maximum = 1000;

            this.btnStop.Visible     = showResult;
            this.btnIgnore.Visible   = showResult;
            this.chxFixedROI.Checked = showResult;
        }
Example #7
0
 private void Form1_Load(object sender, EventArgs e)
 {
     _viewCtrl = new HWndCtrl(hWindowControl1);
     _roiCtrl  = new ROIController();
     _viewCtrl.useROIController(_roiCtrl);
     _roiCtrl.viewController.viewPort.HMouseMove += ViewPort_HMouseMove;;
 }
Example #8
0
 public Form1()
 {
     InitializeComponent();
     roiController  = new ROIController();
     viewController = new HWndCtrl(this.hWindowControl1);
     viewController.useROIController(roiController);
     viewController.setViewState(HWndCtrl.MODE_VIEW_MOVE);
 }
Example #9
0
        public event RefreshInformationForm_Chart_Event_Delegate RefreshInformationForm_Chart_Event; //保存参数 委托事件
        #endregion


        /// <summary>
        /// 主函数
        /// </summary>
        public InformationForm()
        {
            InitializeComponent();
            //画面缩放实例化
            HWndCtrl1 = new HWndCtrl(H_WControl1);
            HWndCtrl1.setViewState(HWndCtrl.MODE_VIEW_ZOOM);
            HWndCtrl1.setViewState(HWndCtrl.MODE_VIEW_MOVE);
        }
Example #10
0
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="roiController"></param>
 public void Init(ROIController roiController, HWndCtrl mView, GeoDataGridViewManager geoManager)
 {
     _roiController = roiController;
     _mView         = mView;
     _geoManager    = geoManager;
     if (_roiController != null)
     {
         _roiController.NotifyRCObserver += new IconicDelegate(resetFinalCheckedBox);
     }
 }
Example #11
0
 public void Show(HWndCtrl viewCtrl)
 {
     if (Arrow != null && Arrow.IsInitialized())
     {
         viewCtrl.ChangeGraphicSettings(Mode.COLOR, "green");
         viewCtrl.ChangeGraphicSettings(Mode.DRAWMODE, "margin");
         viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 2);
         viewCtrl.AddIconicVar(Arrow);
     }
 }
        CameraOperate Camera = new CameraOperate(); //相机操作
        #endregion
        #region 构造函数
        public MainWindow()
        {
            InitializeComponent();
            PLCButton.AddHandler(System.Windows.Controls.Button.MouseDownEvent, new RoutedEventHandler(Button_MouseDown), true);
            PLCButton.AddHandler(System.Windows.Controls.Button.MouseUpEvent, new RoutedEventHandler(Button_MouseUp), true);

            viewController1 = new HWndCtrl(ImageWindow1);//HWindowControlWPF窗口给到窗口控制器
            roiController1  = new ROIController();
            viewController1.useROIController(roiController1);
            viewController1.setViewState(HWndCtrl.MODE_VIEW_MOVE);
        }
Example #13
0
        public HcImageView()
        {
            InitializeComponent();
            roiController  = new ROIController();
            viewController = new HWndCtrl(this.Viewer);
            viewController.useROIController(roiController);
            viewController.setViewState(HWndCtrl.MODE_VIEW_MOVE);

            roiController.ActiveChanged += roiController_ActiveChanged;
            roiController.ROIChanged    += roiController_ROIChanged;
        }
Example #14
0
 public HalconWindow()
 {
     InitializeComponent();
     ViewController = new HWndCtrl(hWindowControl1);
     ViewController.setViewState(HWndCtrl.MODE_VIEW_ZOOM_Wheel);
     无动作ToolStripMenuItem.Checked = !无动作ToolStripMenuItem.Checked;
     if (!IsDesignMode())
     {
         hWindowControl1.HMouseMove += GetImgMessage;
     }
 }
Example #15
0
 /// <summary>
 /// <para>***************************************</para>
 /// Watch OperationMode Change
 /// <para>觀察影像操作模式 (移動, 放大/縮小, 放大鏡)</para>
 /// <para>***************************************</para>
 /// </summary>
 /// <param name="viewController"></param>
 private void setWatchOperationModeChange(HWndCtrl viewController)
 {
     if (viewController != null)
     {
         viewController.On_OperationModeChanged += (mode) =>
         {
             var modeText = Hanbo.Resources.Resource.ResourceManager.GetString(mode);
             SetStatus(SystemStatusType.ControlMode, modeText);
         };
     }
 }
Example #16
0
 /// <summary>
 /// <para>***********************</para>
 /// Zoom Change Observer (縮放)
 /// <para>***********************</para>
 /// </summary>
 /// <param name="viewController"></param>
 private void setWachtZoomChanged(HWndCtrl viewController)
 {
     if (viewController != null)
     {
         viewController.OnZoomChanged += (zoomFactor) =>
         {
             var rate     = Math.Round(100 * 1.0 / zoomFactor, 2);
             var dispText = String.Format("{0}%", rate);
             SetStatus(SystemStatusType.ZoomFactor, dispText);
         };
     }
 }
        public FormVisualizzaScarti(List <Utilities.CacheErrorObject> dataSource, DBL.LinguaManager linguaMngr, object repaintLock)
        {
            InitializeComponent();

            viewControl      = new HWndCtrl(hMainWndCntrl);
            this.linguaMngr  = linguaMngr;
            this.repaintLock = repaintLock;

            bdsCacheErrorObject.DataSource = dataSource;

            AdjustCulture();
        }
 public void ShowGrabPoint(HWndCtrl viewCtrl)
 {
     if (GrabRowTarget != null && GrabRowTarget.Length > 0)
     {
         GrabXld.GenCrossContourXld(GrabRowTarget, GrabColTarget, 30, 0);
     }
     if (GrabXld != null && GrabXld.IsInitialized())
     {
         viewCtrl.ChangeGraphicSettings(Mode.COLOR, "blue");
         viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 2);
         viewCtrl.AddIconicVar(GrabXld);
     }
 }
Example #19
0
        public Form1()
        {
            InitializeComponent();
            hWndCrtl = hWndUnit1.HWndCtrl;

            ROIController = new ROIController();

            ROIController.ROINotifyEvent += new EventHandler <ViewEventArgs>(UpdateViewData);
            roiActUnit1.RoiController     = ROIController;
            hWndCrtl.useROIController(ROIController);

            ROIController.SetROISign(ROIOperation.Positive);
        }
        /*****************************************************************
        * During the load process the HWndCtrl instance is initialized -
        * besides some other variables, needed to manipulate the
        * window panel.
        *****************************************************************/
        private void GraphicsWindowForm_Load(object sender, System.EventArgs e)
        {
            locked      = false;
            viewControl = new HWndCtrl(viewPort);

            // current screen resolution, height and width
            ScreenHeight = Screen.PrimaryScreen.WorkingArea.Height;
            ScreenWidth  = Screen.PrimaryScreen.WorkingArea.Width;

            ScreenCastH = (int)(ScreenHeight / 4.0 * 3.0);
            ScreenCastW = (int)(ScreenWidth / 4.0 * 3.0);

            Init();
        }
Example #21
0
 public CalibrationSetting(Calibraion calibraion)
 {
     InitializeComponent();
     this.tool          = calibraion;
     mView              = hWndUnit1.HWndCtrl;
     tool.NotifyExcInfo = ExecuteInformation;
     base.Init(tool.Name, tool);
     locked = true;
     base.Init(tool.Name, tool);
     base.HideMax();
     base.HideMin();
     Init();
     locked = false;
 }
        public void ShowResult(HWndCtrl hWndCtrl, List <ToolBase> runToolList, bool runningResultFlag)
        {
            if (runningResultFlag == false)
            {
                hWndCtrl.ShowNg();
                if (IniStatus.Instance.SaveNgImage == 1)
                {
                    DateTime dt          = DateTime.Now;
                    string   timeNow     = dt.ToString("yyyy_MM_dd_HH_mm_ss_fff");
                    string   project     = Path.GetFileNameWithoutExtension(UserSetting.Instance.ProjectPath);
                    string   NGImagePath = "D:\\data\\" + project + "\\NgImage\\" + "\\工具组" + settingIndex + "\\";
                    SaveImage(NGImagePath + timeNow + ".png", runToolList[0].ImageTestOut);
                }
            }
            else
            {
                hWndCtrl.ShowOK();
                if (IniStatus.Instance.SaveOkImage == 1)
                {
                    DateTime dt          = DateTime.Now;
                    string   timeNow     = dt.ToString("yyyy_MM_dd_HH_mm_ss_fff");
                    string   project     = Path.GetFileNameWithoutExtension(UserSetting.Instance.ProjectPath);
                    string   NGImagePath = "D:\\data\\" + project + "\\OKImage\\" + "\\工具组" + settingIndex + "\\";
                    SaveImage(NGImagePath + timeNow + ".png", runToolList[0].ImageTestOut);
                }
            }
            HTuple showStart1;

            HOperatorSet.CountSeconds(out showStart1);
            hWndCtrl.ChangeGraphicSettings(Mode.LINESTYLE, new HTuple());
            hWndCtrl.AddIconicVar(runToolList[0].ImageTestOut);
            foreach (ToolBase item in runToolList)
            {
                try
                {
                    item.ShowResult(hWndCtrl);
                    if (item.Message != null && item.Message.Length > 0)
                    {
                        Util.Notify(string.Format("工具{0}_{1}", item.Name, item.Message));
                    }
                }
                catch (Exception ex)
                {
                    Util.Notify(string.Format("工具{0}显示异常", item.Name)); //("工具{0}显示异常{1}", item.Name,e.message));
                    Util.WriteLog(this.GetType(), ex);
                }
            }
            hWndCtrl.Repaint();
        }
Example #23
0
 public void Show(HWndCtrl viewCtrl)
 {
     if (ResultRegion != null && ResultRegion.IsInitialized())
     {
         viewCtrl.ChangeGraphicSettings(Mode.COLOR, "red");
         viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 3);
         viewCtrl.AddIconicVar(ResultRegion);
     }
     if (Grab_Intervene_Region_Affines != null && Grab_Intervene_Region_Affines.IsInitialized())
     {
         viewCtrl.ChangeGraphicSettings(Mode.COLOR, "blue");
         viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 2);
         viewCtrl.AddIconicVar(Grab_Intervene_Region_Affines);
     }
 }
 public void Show(HWndCtrl viewCtrl)
 {
     if (ResultRegion != null && ResultRegion.IsInitialized())
     {
         viewCtrl.ChangeGraphicSettings(Mode.COLOR, "green");
         viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 3);
         viewCtrl.AddIconicVar(ResultRegion);
     }
     //if (LanQuan_Region_Affines != null && LanQuan_Region_Affines.IsInitialized())
     //{
     //    viewCtrl.ChangeGraphicSettings(Mode.COLOR, "blue");
     //    viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 2);
     //    viewCtrl.AddIconicVar(LanQuan_Region_Affines);
     //}
 }
        private void InitializeMyComponent()
        {
            // hWindowControl
            _hWindowControl.Width  = Width;
            _hWindowControl.Height = Height;

            // hWndCtrl
            _hWndCtrl = new HWndCtrl(_hWindowControl);
            ROIController roiController = new ROIController();

            _hWndCtrl.useROIController(roiController);
            _hWndCtrl.setViewState(HWndCtrl.MODE_VIEW_MOVE);

            // hWindow
            _hWindow = _hWindowControl.HalconWindow;
        }
 public override void ShowResult(HWndCtrl viewCtrl)
 {
     //if (Enable == false)
     //{
     //    return;
     //}
     //viewCtrl.ClearList();
     //if (RuningFinish == false)
     //{
     //    return;
     //}
     //if (testImage != null && testImage.IsInitialized())
     //{
     //    viewCtrl.AddIconicVar(testImage);
     //}
 }
Example #27
0
 public HDisplay()
 {
     InitializeComponent();
     searchRegionList = new List <HObject>();
     trainRegionList  = new List <HObject>();
     viewController   = new HWndCtrl(hWindowControl);
     roiController    = new ROIController();
     viewController.useROIController(roiController);
     //减少控件的闪烁
     SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);
     SetStyle(ControlStyles.OptimizedDoubleBuffer, false);
     hWindowControl.BackColor       = Color.Gray;
     viewController.MouseMoveEvent += viewController_MouseMoveEvent;
     hWindowControl.SizeChanged    += new System.EventHandler(this.hWindowControl_SizeChanged);
     m_Windowhandle = hWindowControl.HalconID;
 }
Example #28
0
        public HalconInterface(String name, Panel parentPnl, HalconVision halVis, HWindowControl myHalconWin)
        {
            InitializeComponent();
            ModuleNameLbl.Text = name;
            this.Parent        = parentPnl;
            myHalcon           = halVis;
            m_lockShowpicture  = new object();
            HalconWin          = myHalconWin;
            hWndCtrl           = new HWndCtrl(HalconWin);
            hWndCtrl.setViewState(HWndCtrl.MODE_VIEW_NONE);
            hWndCtrl.repaint();
            myHalcon.OnImageReadyFunction += OnImgReady;

            CaliXLbl.Text = myHalcon.CaliValue.X.ToString("F3");
            CaliYLbl.Text = myHalcon.CaliValue.Y.ToString("F3");
        }
        public void ShowResult(HWndCtrl viewCtrl)
        {
            viewCtrl.ChangeGraphicSettings(Mode.DRAWMODE, "margin");
            if (SearchRegion != null && SearchRegion.IsInitialized())
            {
                viewCtrl.ChangeGraphicSettings(Mode.COLOR, "blue");
                viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 2);
                viewCtrl.AddIconicVar(SearchRegion);
            }

            if (scan_regions != null && scan_regions.IsInitialized())
            {
                viewCtrl.ChangeGraphicSettings(Mode.COLOR, "cyan");
                viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 2);
                viewCtrl.AddIconicVar(scan_regions);
            }

            if (createShapeModel.hShapeModel == null || !createShapeModel.hShapeModel.IsInitialized() || createShapeModel.createNewModelID)
            {
                if (!createShapeModel.CreateShapeModelAct(refImage))
                {
                    return;
                }
            }

            HXLDCont modelXldCont = createShapeModel.ModelXLDCont;

            if (row.Length < 1)
            {
                return;
            }
            GenDetectionXLDResults(modelXldCont);
            if (resultXLDCont != null && resultXLDCont.IsInitialized())
            {
                viewCtrl.ChangeGraphicSettings(Mode.COLOR, "blue");
                viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 2);
                viewCtrl.AddIconicVar(resultXLDCont);
            }
            //GenDetectionRegionResult(createShapeModel.modelRegion);
            //if (resultRegion != null && resultRegion.IsInitialized())
            //{
            //    viewCtrl.ChangeGraphicSettings(Mode.COLOR, "green");
            //    viewCtrl.ChangeGraphicSettings(Mode.LINEWIDTH, 2);
            //    viewCtrl.AddIconicVar(resultRegion);
            //}
        }
        public override void ShowResult(HWndCtrl viewCtrl)
        {
            if (!bFindShapeMode)
            {
                return;
            }
            if (MFindShapeMode.row == null || MFindShapeMode.row.Length < 1)
            {
                return;
            }
            if (RuningFinish == false)
            {
                return;
            }
            MFindShapeMode.ShowResult(viewCtrl);
            if (bGrabPointSetting)
            {
                MGrabPointSetting.ShowGrabPoint(viewCtrl);
            }

            if (bFangDai_Enable && bFangDai_Result)
            {
                MFangDai.Show(viewCtrl);
            }

            if (NotifyExcInfo != null)
            {
                string temp = GetSendResult();
                NotifyExcInfo("发送结果:" + temp);
            }

            if (row_Send != null && row_Send.Length > 0)
            {
                for (int i = 0; i < row_Send.Length; i++)
                {
                    if (id_Send[i].I == 1)
                    {
                        viewCtrl.AddText("OK", (int)(row_Send[i].D), (int)(col_Send[i].D), 80, "green");
                    }
                    else
                    {
                        viewCtrl.AddText("NG", (int)(row_Send[i].D), (int)(col_Send[i].D), 80, "green");
                    }
                }
            }
        }