我熟悉编写可以从LabVIEW调用的DLL,但是我对将IMAQ图像传递给DLL的正确方法感到好奇。这是我发现的一种方式-我还使用类似的机制将IMAQ图像实例从我的DLL发布到事件结构。

请注意,将图像实例转换为群集或从群集转换图像实例的节点位于${LABVIEW_INSTALL_DIR}/vi.lib/vision/DatatypeConversion.llb,分别命名为IMAQ Image Datatype to Image Cluster.viIMAQ Image Cluster to Image Datatype.vi。创建的群集由图像名称和一个整数值组成,该值表示C/C++中Image*类型的指针地址。

这是执行此操作的最佳方法,还是有更好的方法?

最佳答案

我使用另一种方法,使用以下代码将所有图像信息(指针,大小等)放置在群集中:

然后将群集传递给DLL函数,对像素进行操作(当然,不更改大小),然后调用IMAQ的取消映射像素指针。

讨论后编辑:

您的解决方案依赖于拥有NI Vision,在这种情况下,它比我的要好。但是,如果没有NI Vision地雷,则是处理IMAQ像素数据的唯一方法。

10-06 12:42