private void btnContinuGrab_Click(object sender, EventArgs e)
        {
            if (vision == null)
            {
                MessageBox.Show("请选择流程");
                return;
            }

            if (continuGrab)
            {
                return;
            }
            else
            {
                btnGrabOne.Enabled     = false;
                btnContinuGrab.Enabled = false;
                continuGrab            = true;
            }

            Task.Run(() =>
            {
                while (continuGrab)
                {
                    VisionMgr.GetInstance().GetCam(camera).Grab();
                    vision.imgSrc = VisionMgr.GetInstance().GetCam(camera).m_image;

                    if (vision is ProcessSideMea)
                    {
                        vision.Process();
                    }

                    visionControl1.DisplayResults();
                }
            });
        }
Example #2
0
        public bool ProcessImage(string strStep, HObject image, VisionControl ctl)
        {
            VisionBase vb = null;

            if (m_dicVision.TryGetValue(strStep, out vb))
            {
                vb.SetSrcImage(image);
                if (vb.Process(ctl))
                {
                    return(true);
                }
            }

            return(false);
        }
Example #3
0
        /// <summary>
        ///处理相机缓存中的图像,用于采集和处理分开时后处理图像
        /// </summary>
        /// <param name="strStep"></param>
        /// <returns></returns>
        public bool ProcessImage(string strStep)
        {
            VisionBase vb = null;

            if (m_dicVision.TryGetValue(strStep, out vb))
            {
                bool bResult = vb.Process();

                Action <object> action = (object obj) =>
                {
                    // int nCurBufferIndex = vb.m_Camera.m_nCurBufferIndex;
                    SaveWindowImage(strStep, vb.GetWindowImage(), bResult);
                    SaveSrcImage(strStep, vb.m_Camera.GetImage(), bResult);
                };
                Task t1 = new Task(action, "");
                t1.Start();

                return(bResult);
            }
            return(false);
        }