为什么会有把二者结合这个想法,主要是在接触过这两种工具后,发现它们对图像处理有自己独特的优势,但也有自己的缺点,借助C++,opencv可以实现许多自己想实现的功能,但是在界面设计上得花另一番功夫,Labview的长处就在于它的界面设计简单,控件拖拽所见即所得,与QT有点类似,当然QT的跨平台性是labview比不了的,可是labview在功能实现上的快速性和简洁性也是较大的优势,对labview稍微熟悉一点即可实现许多强大的功能。(当然,用什么都只是工具,主要是掌握方法与思想)
话不多说,进入正题:软件版本Labview2015 64位英文版(要安装VISION Acquisition Software组件) 和 Visual Studio 2015,注意生成的DLL要与Labview版本一致,都是64位才可以,否则会有其他的调用问题。
一、从Labview传递图像数据到opencv中,经过图像处理后又将处理结果返回到Labview显示。
我这里有两种图像数据来源,一种是直接调用本地图片,另一种是通过labview调用摄像头传输视频,可以做到实时的图像传输和图像处理。二者的区别只在Labview的设计上有稍许差别,Dll的内容是一致的。
既然DLL的内容一致,那就先介绍DLL的设计,前面几篇中有讲到VS如何创建DLL,可以翻看前面的内容,这里是调用软件发生改变,不再是由VS自己调用,而是通过Labview来调用,步骤差别不大。
dll.h头文件的定义如下: