VisionPro 在C#项目程序中实现实时取像方式,有两种:
1.采用界面控件 CogAcqFifoTool 进行操作,与在VisionPro软件中操作一致;
2.采用界面控件 CogRecordDisplay 进行显示,通过Button 事件触发实时取像。
本文省略第一种方式,仅表述第二种方式。
输入显示控件名称,相机编号,代码如下:
using System.Windows.Forms; using Cognex.VisionPro; using Cognex.VisionPro.ToolBlock; public CogFrameGrabbers mFrameGraber; public ICogAcqFifo mCogAcqFifo = null; /// <summary> /// 实时显示 /// </summary> /// <param name="cogDisplay">显示控件</param> /// <param name="cameraN">相机编号</param> public void VisionLive(CogRecordDisplay cogDisplay, int cameraN) { try { if (cogDisplay.LiveDisplayRunning) { //关闭光源 cogDisplay.StopLiveDisplay(); } else { mFrameGraber = new Cognex.VisionPro.CogFrameGrabbers(); int CameraCounts = 1;//设置项目相机数量 if (mFrameGraber.Count < CameraCounts) { //throw new Exception("Failed to create the CogFrameGrabbers object."); MessageBox.Show("在线相机数量异常,请检查相机连接!"); return; } //开启光源 mCogAcqFifo = mFrameGraber[cameraN].CreateAcqFifo(mFrameGraber[cameraN].AvailableVideoFormats[0], CogAcqFifoPixelFormatConstants.Format8Grey, 0, true); cogDisplay.StartLiveDisplay(mCogAcqFifo); cogDisplay.AutoFit = true; } } catch (Exception ex) { MessageBox.Show("相机实时显示失败!"); } }