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(); } }); }
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); }
/// <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); }