コード例 #1
0
        /*************************************************************************/
        /*                   Event handling for keyboard	                         */
        /*************************************************************************/
        private void viewPort_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            //roi not null,roi selected ,show roi
            if (roiManager != null && (roiManager.activeROIidx != -1) && (dispROI == MODE_INCLUDE_ROI))
            {
                switch (e.KeyCode)
                {
                case System.Windows.Forms.Keys.W:    //up
                    roiManager.mouseMoveAction(roiManager.CurrentX, roiManager.CurrentY - 1);
                    Console.WriteLine("W-UP");
                    break;

                case System.Windows.Forms.Keys.S:    //down
                    roiManager.mouseMoveAction(roiManager.CurrentX, roiManager.CurrentY + 1);
                    Console.WriteLine("S-DOWN");
                    break;

                case System.Windows.Forms.Keys.A:    //left
                    roiManager.mouseMoveAction(roiManager.CurrentX - 1, roiManager.CurrentY);
                    Console.WriteLine("A-LEFT");
                    break;

                case System.Windows.Forms.Keys.D:    //right
                    roiManager.mouseMoveAction(roiManager.CurrentX + 1, roiManager.CurrentY);
                    Console.WriteLine("D-RIGHT");
                    break;

                case System.Windows.Forms.Keys.Up:
                    roiManager.mouseMoveAction(roiManager.CurrentX + 1, roiManager.CurrentY);
                    break;

                case System.Windows.Forms.Keys.Down:
                    roiManager.mouseMoveAction(roiManager.CurrentX - 1, roiManager.CurrentY);
                    break;

                case System.Windows.Forms.Keys.Left:
                    roiManager.mouseMoveAction(roiManager.CurrentX, roiManager.CurrentY - 1);
                    break;

                case System.Windows.Forms.Keys.Right:
                    roiManager.mouseMoveAction(roiManager.CurrentX, roiManager.CurrentY + 1);
                    break;

                default:
                    return;
                }
                roiManager.NotifyRCObserver(ROIController.EVENT_UPDATE_ROI);
            }
        }
コード例 #2
0
ファイル: HWndCtrl.cs プロジェクト: lake2010/SZVppFilmUI
        private void ViewPort_HMouseMove(object sender, HMouseEventArgsWPF e)
        {
            if (stateView == MODE_ROI_Create)
            {
                return;
            }

            double motionX, motionY;
            double posX, posY;
            double zoomZone;
            int    a = roiManager.mouseMoveROI(e.Column, e.Row);//鼠标经过的index

            if (!mousePressed)
            {
                return;
            }

            if (roiManager != null && (roiManager.activeROIidx != -1) && (dispROI == MODE_INCLUDE_ROI))
            {
                roiManager.mouseMoveAction(e.Column, e.Row);
            }
            else if (stateView == MODE_VIEW_MOVE)
            {
                motionX = ((e.Column - startX));
                motionY = ((e.Row - startY));

                if (((int)motionX != 0) || ((int)motionY != 0))
                {
                    moveImage(motionX, motionY);
                    startX = e.Column - motionX;
                    startY = e.Row - motionY;
                }
            }
            else if (stateView == MODE_VIEW_ZOOMWINDOW)
            {
                HSystem.SetSystem("flush_graphic", "false");
                ZoomWindow.ClearWindow();


                posX     = ((e.Column - ImgCol1) / (ImgCol2 - ImgCol1)) * viewPort.ActualWidth;
                posY     = ((e.Row - ImgRow1) / (ImgRow2 - ImgRow1)) * viewPort.ActualHeight;
                zoomZone = (zoomWndSize / 2) * zoomWndFactor * zoomAddOn;

                ZoomWindow.SetWindowExtents((int)posY - (zoomWndSize / 2),
                                            (int)posX - (zoomWndSize / 2),
                                            zoomWndSize, zoomWndSize);
                ZoomWindow.SetPart((int)(e.Row - zoomZone), (int)(e.Column - zoomZone),
                                   (int)(e.Row + zoomZone), (int)(e.Column + zoomZone));
                repaint(ZoomWindow);

                HSystem.SetSystem("flush_graphic", "true");
                ZoomWindow.DispLine(-100.0, -100.0, -100.0, -100.0);
            }
        }
コード例 #3
0
ファイル: HWndCtrl.cs プロジェクト: sanmengxishui/162
        /*******************************************************************/
        private void mouseMoved(object sender, HalconDotNet.HMouseEventArgs e)
        {
            //lock (mmlocker)
            //{
            double motionX, motionY;
            double posX, posY;
            double zoomZone;

            if (!mousePressed)
            {
                return;
            }

            if (roiManager != null && (roiManager.activeROIidx != -1) && (dispROI == MODE_INCLUDE_ROI))
            {
                roiManager.mouseMoveAction(e.X, e.Y);
            }
            else if (stateView == MODE_VIEW_MOVE)
            {
                motionX = ((e.X - startX));
                motionY = ((e.Y - startY));

                if (((int)motionX != 0) || ((int)motionY != 0))
                {
                    moveImage(motionX, motionY);
                    startX = e.X - motionX;
                    startY = e.Y - motionY;
                }
            }
            else if (stateView == MODE_VIEW_ZOOMWINDOW)
            {
                HSystem.SetSystem("flush_graphic", "false");
                ZoomWindow.ClearWindow();


                posX     = ((e.X - ImgCol1) / (ImgCol2 - ImgCol1)) * viewPort.Width;
                posY     = ((e.Y - ImgRow1) / (ImgRow2 - ImgRow1)) * viewPort.Height;
                zoomZone = (zoomWndSize / 2) * zoomWndFactor * zoomAddOn;

                ZoomWindow.SetWindowExtents((int)posY - (zoomWndSize / 2),
                                            (int)posX - (zoomWndSize / 2),
                                            zoomWndSize, zoomWndSize);
                ZoomWindow.SetPart((int)(e.Y - zoomZone), (int)(e.X - zoomZone),
                                   (int)(e.Y + zoomZone), (int)(e.X + zoomZone));
                repaint(ZoomWindow);

                HSystem.SetSystem("flush_graphic", "true");
                ZoomWindow.DispLine(-100.0, -100.0, -100.0, -100.0);
            }

            //}
        }
コード例 #4
0
        /*******************************************************************/
        private void mouseMoved(object sender, HalconDotNet.HMouseEventArgs e)
        {
            double motionX, motionY;

            if (_stateView == MODE_VIEW_ZOOMCONTINUE)
            {
                doZoomContinueAction(e);
                return;
            }

            if (!_mousePressed)
            {
                return;
            }

            if (_roiManager != null && (_roiManager.activeROIidx != -1) && (_dispROI == MODE_INCLUDE_ROI))
            {
                _roiManager.mouseMoveAction(e.X, e.Y);
            }
            else if (_stateView == MODE_VIEW_MOVE)
            {
                motionX = ((e.X - _moveStartX));
                motionY = ((e.Y - _moveStartY));

                if (((int)motionX != 0) || ((int)motionY != 0))
                {
                    moveImage(motionX, motionY);
                    _moveStartX = e.X - motionX;
                    _moveStartY = e.Y - motionY;
                }
            }
            else if (_stateView == MODE_VIEW_ZOOMWINDOW)
            {
                if (ZoomWindow != null)
                {
                    resetZoomWindow(e);
                }
            }
        }
コード例 #5
0
        /*******************************************************************/
        private void mouseMoved(object sender, HalconDotNet.HMouseEventArgs e)
        {
            double motionX, motionY;
            double posX, posY;
            double zoomZone;
            //if (viewPort.)
            int count = HObjList.Count;

            foreach (var item in HObjList)  //实时显示图片的灰度  灰度显示
            {
                HObjectEntry objNow = (HObjectEntry)item;
                if (objNow.HObj is HImage)
                {
                    try{
                        HObject myImg = new HObject();
                        if (!objNow.HObj.IsInitialized())
                        {
                            break;
                        }
                        //HOperatorSet.CopyObj(objNow.HObj, out myImg, 1, -1);
                        HTuple Gray = new HTuple();
                        HTuple Wid, Hei;
                        HOperatorSet.GetImageSize(objNow.HObj, out Wid, out Hei);
                        if (0 < e.Y && e.Y < Hei && 0 < e.X && e.X < Wid)
                        {
                            repaint(viewPort.HalconWindow);
                            HOperatorSet.GetGrayval(objNow.HObj, e.Y, e.X, out Gray);
                            double scale = (ImgRow2 - ImgRow1) / Hei.D;
                            //HOperatorSet.SetTposition(viewPort.HalconWindow, ImgRow2 - 400 * scale, ImgCol2 - 400 * scale);
                            HOperatorSet.SetTposition(viewPort.HalconWindow, e.Y + 20 * scale, e.X + 50 * scale);
                            HOperatorSet.SetColor(viewPort.HalconWindow, "red");
                            HOperatorSet.WriteString(viewPort.HalconWindow, "R:" + ((int)e.Y).ToString() + " " + "C:" +
                                                     ((int)e.X).ToString() + "  " + ((int)Gray[0].D).ToString());
                        }
                        //myImg.Dispose();
                        break;
                    }
                    catch {
                        break;
                    }
                }
            }
            if (!mousePressed)
            {
                return;
            }
            if (roiManager != null && (roiManager.activeROIidx != -1) && (dispROI == MODE_INCLUDE_ROI))
            {
                roiManager.mouseMoveAction(e.X, e.Y);
            }
            else if (stateView == MODE_VIEW_MOVE)              //平移视图
            {
                motionX = ((e.X - startX));
                motionY = ((e.Y - startY));

                if (((int)motionX != 0) || ((int)motionY != 0))
                {
                    moveImage(motionX, motionY);
                    startX = e.X - motionX;
                    startY = e.Y - motionY;
                }
            }
            else if (stateView == MODE_VIEW_ZOOMWINDOW)              //缩放视图
            {
                HSystem.SetSystem("flush_graphic", "false");
                ZoomWindow.ClearWindow();

                posX     = ((e.X - ImgCol1) / (ImgCol2 - ImgCol1)) * viewPort.Width;
                posY     = ((e.Y - ImgRow1) / (ImgRow2 - ImgRow1)) * viewPort.Height;
                zoomZone = (zoomWndSize / 2) * zoomWndFactor * zoomAddOn;

                ZoomWindow.SetWindowExtents((int)posY - (zoomWndSize / 2),
                                            (int)posX - (zoomWndSize / 2),
                                            zoomWndSize, zoomWndSize);
                ZoomWindow.SetPart((int)(e.Y - zoomZone), (int)(e.X - zoomZone),
                                   (int)(e.Y + zoomZone), (int)(e.X + zoomZone));
                repaint(ZoomWindow);

                HSystem.SetSystem("flush_graphic", "true");
                ZoomWindow.DispLine(-100.0, -100.0, -100.0, -100.0);
            }
        }
コード例 #6
0
ファイル: HWndCtrl.cs プロジェクト: MarkDDi/Frame
        /*******************************************************************/
        private void mouseMoved(object sender, HalconDotNet.HMouseEventArgs e)
        {
            if (e.Button != MouseButtons.Left)
            {
                mousePressed = true;
                int activeROIidx = -1;
                //double scale;
                startX = e.X;
                startY = e.Y;
                if (roiManager != null)
                {
                    activeROIidx = roiManager.mouseDownAction(e.X, e.Y);
                }

                MouseMove me = new MouseMove();
                try
                {
                    if (HObjList.Count > 0)
                    {
                        HTuple       gray  = 0;
                        HObjectEntry entry = (HObjectEntry)HObjList[0];
                        if ((e.Y >= 0) && (e.X >= 0))
                        {
                            HOperatorSet.GetGrayval(entry.HObj, e.Y, e.X, out gray);
                            me.Gray = (uint)gray.I;
                        }
                    }
                }
                catch { me.Gray = 0; }
                me.X = (int)e.X + 1;   //图像从0开始,显示数据从1开始
                me.Y = (int)e.Y + 1;
                MouseMoveEventOutput(me);
            }
            else
            {
                double motionX, motionY;

                if (!mousePressed)
                {
                    return;
                }

                if (roiManager != null && (roiManager.activeROIidx != -1))
                {
                    roiManager.mouseMoveAction(e.X, e.Y);
                }
                else
                {
                    if (!isCancelImageMove)
                    {
                        motionX = ((e.X - startX));
                        motionY = ((e.Y - startY));

                        if (((int)motionX != 0) || ((int)motionY != 0))
                        {
                            moveImage(motionX, motionY);
                            startX = e.X - motionX;
                            startY = e.Y - motionY;
                        }
                    }
                }
            }
        }