在visionpro中,我们静态图像处理好了(我们刚刚在前一讲匹配模板学习好了),需要动一下观察物,实时观察图像,并运行,再次看静态图像处理结果(匹配效果)。常常需要实时观察,visionpro给我们提供了一个实时观察的控件,添加步骤如下:
第一,工具箱---选项中,如图添加:
第二,拖动到form界面如下,我感觉其实这个cogdisplay控件就是picturebox:
第三,我们前面创建了一个c#项目,“调用cognexvpp”,实时取像代码:
CogAcqFifoTool mAcqFifoTool = (CogAcqFifoTool)mtg1.Tools["CogAcqFifoTool1"];
cogDisplay1.Image = mAcqFifoTool.OutputImage;
cogDisplay1.Fit(true);
cogDisplay1.StartLiveDisplay(mAcqFifoTool.Operator, true);
第四,程序运行效果如下:
我们使用自己的动态库basler200wcamdll.dll和pylonc.net.dll(basler相机驱动包选择安装后就有)也获取实时图像,和visionpro做一个对比:
第一,创建一个c#空项目,名称“实时取像对比visionpro”,使用framework3.5,拷贝两个dll到创建项目debug下,首先添加basler200wcamdll.dll:
第二,pylonc.net.dll添加引用即可,如图:
第三,添加c#代码,进行实时取像:
private void buttonrealimg_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
pictureBoxrealimg.Image = basler200wcamuc1.getbitmap();//picturebox
int ww = pictureBoxrealimg.Image.Width;
int hh = pictureBoxrealimg.Image.Height;
byte[] buffer8 = new byte[ww * hh];
buffer8 = basler200wcamuc1.getglobbuffer8bits();
}
需要注意的是:调用cognexvpp项目使用ebus universal pro driver,
“实时取像对比visionpro”项目用pylon gige vision streaming filter。
有没有发现cogdisplay控件就是picturebox,cogDisplay1.StartLiveDisplay函数就是timer1?
CogAcqFifoTool相当于我们的动态库basler200wcamdll?