既然DLL的内容一致,那就先介绍DLL的设计,前面几篇中有讲到VS如何创建DLL,可以翻看前面的内容,这里是调用软件发生改变,不再是由VS自己调用,而是通过Labview来调用,步骤差别不大。
dll.h头文件的定义如下:
#pragma once
#include
#ifdef DLL_IMPLEMENT
#define DLL 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 _API _declspec(dllimport)
#else
#define DLL_API _declspec(dllexport)
#endif
extern “C” DLL_API void add2(int rows, int cols, unsigned __int8 data);
extern “C” DLL_API int ImgdatatoLabview(unsigned __int8 imgdata);
extern “C” DLL_API int getimagesize(int rows, int cols);
void add2(int rows, int cols, unsigned __int8 *data)是接收从labview传来的数据进行图像处理,注意参数类型,unsigned __int8 *data是指针类型,由于opencv中的图片数据类型是Mat型,而Labview里面没有Mat类型,所以要通过指针/数组来实现数据的传递。
下面是对图像处理函数主体,完成的是一个调用opencv里的Canny边缘提取函数。可以看到将image_src与关联到指针的首地址,经过图像处理后,最后的结果又返回到