void add2(int rows, int cols, unsigned __int8 *data)是接收从labview传来的数据进行图像处理,注意参数类型,unsigned __int8 *data是指针类型,由于opencv中的图片数据类型是Mat型,而Labview里面没有Mat类型,所以要通过指针/数组来实现数据的传递。
下面是对图像处理函数主体,完成的是一个调用opencv里的Canny边缘提取函数。可以看到将image_src与关联到指针的首地址,经过图像处理后,最后的结果又返回到了image_src上,所以即便该函数没有返回值,也是能实现图像经过处理后传回到Labview。
_declspec(dllexport) extern void add2(int rows, int cols, unsigned __int8 *data)//接收labview传过来的图像数据进行处理,图片来源于labview的采集
{
Mat image_src(rows, cols, CV_8U, &data[0]);
/* Insert code here */
Mat temp;
boxFilter(image_src, temp, -1, Size(5, 5));
Canny(temp, image_src, 150, 100, 3);
}
Labview的设计
1、源图像来源于本地图片文件,Labview前面板可看到一下效果,在运行前先选择文件目录即可。
后面板逻辑:调用动态链接库控件的位置在Connectiv