将Opencv中的图像通过动态链接库传递给Labview

本文参考了《LabVIEW与OpenCV的混合编程中图像格式的转换》&http://forums.ni.com/t5/Machine-Vision/Using-OpenCV-library-in-LabVIEW/m-p/648429,

由于网上的文章中的图,不清晰,再加上对opencv刚接触,遇到了一些问题,故写下,以免以后忘记。

1.首先在VS中建立DLL工程

        这里我没有使用_declspec(dllexport),用的是模块定义文件.def,具体怎么弄,可以参考孙鑫的视频

#include
int ImgdatatoLabview(unsigned __int8 *imgdata)
{
        IplImage* ImgSrc=cvLoadImage("D:\\mediate.tif");//read the image;
        int rows=373;  //图像的宽高,当然你也可以由外面传递过来
	int cols=559;	
	Mat tempimg(ImgSrc,true);           
	Mat img(rows, cols, CV_8U, imgdata);
	img.convertTo(tempimg,CV_8UC1);    //特别注意这里参数CV_8UC1的选择,要根据你的图像选择不同的类型
		
	return 0;
}

2.Labview中建立库函数节点

这里需要安装Labview,vision.

程序框图如下

将Opencv中的图像通过动态链接库传递给Labview_第1张图片将Opencv中的图像通过动态链接库传递给Labview_第2张图片

你可能感兴趣的:(Labview,Opencv)