Example #1
0
 private void 无动作ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     ViewController.setViewState(HWndCtrl.MODE_VIEW_NONE);
     无动作ToolStripMenuItem.Checked = !无动作ToolStripMenuItem.Checked;
     缩放ToolStripMenuItem.Checked  = false;
     移动ToolStripMenuItem.Checked  = false;
 }
Example #2
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 #3
0
 private void TBMove_Click(object sender, EventArgs e)
 {
     if (hWndCtrl.GetViewState() == HWndCtrl.MODE_VIEW_MOVE)
     {
         hWndCtrl.setViewState(HWndCtrl.MODE_VIEW_NONE);
     }
     else
     {
         hWndCtrl.setViewState(HWndCtrl.MODE_VIEW_MOVE);
     }
 }
Example #4
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 #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 Form1()
 {
     InitializeComponent();
     roiController  = new ROIController();
     viewController = new HWndCtrl(this.hWindowControl1);
     viewController.useROIController(roiController);
     viewController.setViewState(HWndCtrl.MODE_VIEW_MOVE);
 }
        /// <summary>
        /// Performs the initialization of the HDisplayControl
        /// during loading to the memory.
        /// </summary>
        private void HDisplayControl_Load(object sender, EventArgs e)
        {
            hWndControl = new HWndCtrl(viewPort);

            // Initialization graphic window size
            windowExtents = new Rectangle(0, 0, this.viewPort.WindowSize.Width,
                                          this.viewPort.WindowSize.Height);


            imageWidth = imageHeight = 0;

            displayZoomValue = 100;
            zoomCenter       = new Point(windowExtents.Width / 2, windowExtents.Height / 2);

            if (MoveOnPressedMouseButton)
            {
                hWndControl.setViewState(HWndCtrl.MODE_VIEW_MOVE);
            }
            else
            {
                hWndControl.setViewState(HWndCtrl.MODE_VIEW_NONE);
            }

            // add event handler after zooming the image
            hWndControl.OnImageZoomed += new OnIconicObjectZoomedHandler(
                this.hWndControl_IconicObjectZoomed);
            hWndControl.OnImageMoved += new OnIconicObjectMovedHandler(
                this.hWndControl_IconicObjectMoved);
            // setup ROIController
            roiController = new ROIController();
            hWndControl.useROIController(roiController);

            // handle the changes of regions
            roiController.NotifyRCObserver = null;
            roiController.NotifyRCObserver = new IconicDelegate(UpdateViewData);
            hWndControl.clearList();
            //---------

            // set the sign of the draw region to the value "Add Region"
            roiController.setROISign(ROIController.MODE_ROI_POS);
            this.ShowROI = true;
        }
Example #8
0
        ///<summary>
        ///程序初始化
        ///</summary>
        public void Initialization()
        {
            //实例化:检测画面子菜单
            LineDetect                 = new LineDetect();
            LineDetect.TopLevel        = false;
            LineDetect.Dock            = DockStyle.Fill;
            LineDetect.FormBorderStyle = FormBorderStyle.None;
            LineDetect.Size            = TLPCheckParam.Size;
            ROIRectangle2              = new ROIRectangle2();
            ho_Image       = null;
            hv_ImageWindow = HWControl1.HalconID;

            InspectionStandard                 = new InspectionStandard();
            InspectionStandard.TopLevel        = false;
            InspectionStandard.Dock            = DockStyle.Fill;
            InspectionStandard.FormBorderStyle = FormBorderStyle.None;
            InspectionStandard.Size            = TLPCheckParam.Size;
            SendMessage(this.TLPanel_Bottom.Handle, WM_SETREDRAW, 0, IntPtr.Zero);//禁止重绘
            TLPCheckParam.Controls.Clear();
            TLPCheckParam.Controls.Add(InspectionStandard);
            InspectionStandard.Show();
            SendMessage(TLPanel_Bottom.Handle, WM_SETREDRAW, 1, IntPtr.Zero); //取消禁止
            TLPanel_Bottom.Refresh();                                         //刷新控件
            //

            //画面缩放
            roiController = new ROIController();
            HWndCtrl      = new HWndCtrl(HWControl1);
            HWndCtrl.useROIController(roiController);
            HWndCtrl.setViewState(HWndCtrl.MODE_VIEW_ZOOM);
            HWndCtrl.setViewState(HWndCtrl.MODE_VIEW_MOVE);
            HWndCtrl.ReDrawEvent          += new HWndCtrl.ReDrawDelegate(ReDraw);           //更改测量矩形,重绘直线
            LineDetect.ReviewLineEvent    += new LineDetect.ReviewLineDelegate(ReviewLine); //参数更改,重绘直线
            HWndCtrl.ImageProcessingEvent += HWndCtrl_ImageProcessingEvent;

            if (ho_Image != null)
            {
                HWndCtrl.addIconicVar(ho_Image);
                HWndCtrl.repaint();
            }
            //
        }
Example #9
0
 public HalconWindow()
 {
     InitializeComponent();
     ViewController = new HWndCtrl(hWindowControl1);
     ViewController.setViewState(HWndCtrl.MODE_VIEW_ZOOM_Wheel);
     无动作ToolStripMenuItem.Checked = !无动作ToolStripMenuItem.Checked;
     if (!IsDesignMode())
     {
         hWindowControl1.HMouseMove += GetImgMessage;
     }
 }
        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 #11
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;
        }
        /// <summary>
        /// 設定 ViewController 操作模式
        /// </summary>
        /// <param name="button"></param>
        /// <param name="mode"></param>
        private void setViewControlMode(object button, int mode)
        {
            var btn = button as ToolStripButton;

            if (btn != null)
            {
                setSingleToolStripButtonOn(btn, new ToolStripButton[] { });
                var newMode = (btn.Checked) ? mode : HWndCtrl.MODE_VIEW_NONE;
                if (mView != null)
                {
                    mView.setViewState(newMode);
                }
            }
        }
Example #13
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");
        }
        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;
        }
Example #15
0
        public ImageViewer()
        {
            InitializeComponent();
            //hv_window = this.WPF_HWindow.HalconWindow;
            viewController = new HWndCtrl(this.WPF_HWindow);
            roiController  = new ROIController();



            viewController.useROIController(roiController);
            viewController.setViewState(HWndCtrl.MODE_VIEW_MOVE);
            HObjectList = viewController.HObjList;
            viewController.HObjListChanged += ViewController_HObjListChanged;

            ROIList = roiController.ROIList;
            roiController.ActiveChanged += RoiController_ActiveChanged;
            roiController.ROIChanged    += RoiController_ROIChanged;
        }
Example #16
0
        private void btnLoadImage_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();

            dialog.RestoreDirectory = true;
            dialog.Multiselect      = false;
            dialog.Filter           = "图片|*.*";
            dialog.Title            = "选择一张图片";
            DialogResult result = dialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                hImage = new HImage(dialog.FileName);
                _viewCtrl.addIconicVar(hImage);
                //_viewCtrl.resetWindow();
                //_viewCtrl.repaint();
                _viewCtrl.setViewState(HWndCtrl.MODE_VIEW_ZOOM_Wheel);
            }
        }
Example #17
0
 public void IntialView(HWindowControl hlView, HTuple imageWidth, HTuple imageHeight)
 {
     lock (globalLock) {
         try {
             if (viewController != null)
             {
                 viewController.clearList();
             }
             viewController = new HWndCtrl(hlView);
             viewController.useROIController(roiController);
             viewController.setViewState(HWndCtrl.MODE_VIEW_MOVE);
             roiController.setROISign(ROIController.MODE_ROI_NONE);
             this.imageWidth  = imageWidth;
             this.imageHeight = imageHeight;
             Hwnd             = hlView;
             SetDraw("red", "margin");
             HOperatorSet.GenEmptyObj(out AimShow);
             AddViewCross(imageHeight / 2, imageWidth / 2, imageWidth / 10, 0, true);
             //AddViewRec2(imageHeight / 2, imageWidth / 2, imageWidth / 30, imageWidth / 30, 0, true);
             AddViewLine(imageHeight / 15, imageWidth / 15, imageHeight / 15 + imageHeight / 5, imageWidth / 15, true);
             AddViewLine(imageHeight / 15, imageWidth / 15, imageHeight / 15, imageWidth / 15 + imageWidth / 5, true);
             AddViewLine(imageHeight - imageHeight / 15 - imageHeight / 5, imageWidth / 15, imageHeight - imageHeight / 15, imageWidth / 15, true);
             AddViewLine(imageHeight - imageHeight / 15, imageWidth / 15, imageHeight - imageHeight / 15, imageWidth / 15 + imageWidth / 5, true);
             AddViewLine(imageHeight - imageHeight / 15 - imageHeight / 5, imageWidth - imageWidth / 15, imageHeight - imageHeight / 15, imageWidth - imageWidth / 15, true);
             AddViewLine(imageHeight - imageHeight / 15, imageWidth - imageWidth / 15 - imageWidth / 5, imageHeight - imageHeight / 15, imageWidth - imageWidth / 15, true);
             AddViewLine(imageHeight / 15, imageWidth - imageWidth / 15, imageHeight / 15 + imageHeight / 5, imageWidth - imageWidth / 15, true);
             AddViewLine(imageHeight / 15, imageWidth - imageWidth / 15, imageHeight / 15, imageWidth - imageWidth / 15 - imageWidth / 5, true);
             foreach (var item in hObjectList)
             {
                 if (item != null)
                 {
                     item.Dispose();
                 }
             }
             hObjectList.Clear();
             //this.HMouseClick = this.viewController.HMouseClick;
             this.viewController.HMouseClick += new HMouseEventHandler(HMouseDown);
         }
         catch
         { }
     }
 }
 /*******************************************************************/
 private void noneRadioButton_CheckedChanged(object sender, System.EventArgs e)
 {
     viewControl.setViewState(HWndCtrl.MODE_VIEW_NONE);
 }
Example #19
0
        /// <summary>
        /// 指定ROI类型画ROI
        /// </summary>
        /// <param name="ROI_TYPE">ROI.ROI_TYPE</param>
        /// <returns></returns>
        public ROI DrawROI(int ROI_TYPE)
        {
            ROI NewROI = null;

            viewController.setViewState(HWndCtrl.MODE_ROI_Create);
            WPF_HWindow.HalconWindow.SetColor("red");

            if (ROI_TYPE == ROI.ROI_TYPE_LINE)
            {
                double row1, row2, column1, column2;
                hv_window.DrawLine(out row1, out column1, out row2, out column2);
                if (row1 == 0 && row2 == 0 && column1 == 0 && column2 == 0)
                {
                    Console.WriteLine("空的ROI");
                }
                else
                {
                    ROILine _ROI = new ROILine();
                    _ROI.createROI(row1, column1, row2, column2);
                    NewROI = _ROI;
                }
            }
            else if (ROI_TYPE == ROI.ROI_TYPE_RECTANGLE1)
            {//如果type是Rectangle1
                double row1, row2, column1, column2;
                hv_window.DrawRectangle1(out row1, out column1, out row2, out column2);

                if (row1 == 0 && row2 == 0 && column1 == 0 && column2 == 0)
                {
                    Console.WriteLine("空的ROI");
                }
                else
                {
                    ROIRectangle1 _ROI = new ROIRectangle1();
                    _ROI.createROI(row1, column1, row2, column2);
                    NewROI = _ROI;
                }
            }
            else if (ROI_TYPE == ROI.ROI_TYPE_RECTANGLE2)
            {//
                double row, column, phi, length1, length2;
                hv_window.DrawRectangle2(out row, out column, out phi, out length1, out length2);

                if (row == 0 && column == 0 && length1 == 0 && length2 == 0)
                {
                    Console.WriteLine("空的ROI");
                }
                else
                {
                    ROIRectangle2 _ROI = new ROIRectangle2();
                    _ROI.createROI(row, column, phi, length1, length2);
                    NewROI = _ROI;
                }
            }
            else if (ROI_TYPE == ROI.ROI_TYPE_REGION)
            {//如果type是Region
                HRegion hr = hv_window.DrawRegion();
                if (hr.Area.L == 0)
                {
                    Console.WriteLine("空的ROI");
                }
                else
                {
                    NewROI = new ROIRegion(hr);
                }
            }
            else if (ROI_TYPE == ROI.ROI_TYPE_CIRCLE)
            {
                double row, column, radius;
                hv_window.DrawCircle(out row, out column, out radius);
                if (row == 0 && column == 0 && radius == 0)
                {
                    Console.WriteLine("空的ROI");
                }
                else
                {
                    ROICircle _ROI = new ROICircle();
                    _ROI.createROI(column, row, radius);
                    NewROI = _ROI;
                }
            }

            DelaySetViewState(HWndCtrl.MODE_VIEW_MOVE);
            //hv_window.DispObj(hr);
            return(NewROI);
        }
Example #20
0
 /*************************************************************************
  * Eventhandles for the GUI components mapping the view functions, like
  * move, zoom and the neutral state.
  * /**************************************************************************/
 private void MoveButton_CheckedChanged(object sender, System.EventArgs e)
 {
     viewControl.setViewState(HWndCtrl.MODE_VIEW_MOVE);
 }
Example #21
0
 /// <summary>When the corresponding radio button is checked, mouse events trigger more actions.</summary>
 private void moveButton_Click(object sender, System.EventArgs e)
 {
     viewController.setViewState(HWndCtrl.MODE_VIEW_MOVE);
 }