/// <summary> /// 绑定处理步骤和显示控件 /// </summary> /// <param name="strStep"></param> /// <param name="vc"></param> public void BindWindow(string strStep, VisionControl vc) { VisionBase vb = null; if (m_dicVision.TryGetValue(strStep, out vb)) { vb.BindWindow(vc); } }
/// <summary> /// 加入一个处理步骤 /// </summary> /// <param name="strCamName"></param> /// <param name="vb"></param> public void AddVisionStep(string strCamName, VisionBase vb) { CameraBase cb; if (m_dicCamera.TryGetValue(strCamName, out cb)) { vb.BindCamera(cb); m_dicVision.Add(vb.Name, vb); } else { throw new Exception("系统指定的相机" + strCamName + "未找到"); } }
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> /// <param name="image"></param> /// <param name="ctl"></param> /// <returns></returns> //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)) // { // // ShowLog(strStep + " image ok! "); // return true; // } // } // // ShowLog(strStep + " image fail! "); // return false; //} /// <summary> ///指定步骤开始采集图像,用于采集和处理分开时先采集图像 /// </summary> /// <param name="strStep"></param> /// <returns></returns> public bool SnapImage(string strStep) { VisionBase vb = null; if (m_dicVision.TryGetValue(strStep, out vb)) { if (vb.Snap()) { // ShowLog(strStep + " snap ok! "); return(true); } } // ShowLog(strStep + " snap fail! "); return(false); }
private void cmbProcess_SelectedIndexChanged(object sender, EventArgs e) { //获得当前图像处理流程 vision = VisionMgr.GetInstance().GetVisionBase(cmbProcess.Text); visionControl1.RegisterUpdateInterface(vision); //获取曝光 nudExposure.Value = vision.m_ExposureTime; var v = vision as ProcessSideMea; nudSigma.Value = (decimal)v.Sigma.D; nudThreshold.Value = (decimal)v.Threshold.D; HOperatorSet.ClearWindow(visionControl1.GetHalconWindow()); visionControl1.DisplayResults(); }
/// <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); }