LabVIEW,C++ DLL和IMAQ图像

hat*_*ero 5 c++ dll labview

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

示例图

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

这是最好的方法吗,还是有更好的方法?

Cha*_*esB 4

我使用不同的方法,使用以下代码将所有图像信息(指针、大小等)放入集群中:

\n\n

在此输入图像描述

\n\n

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

\n\n
\n\n

讨论后编辑:

\n\n

您的解决方案依赖于 NI Vision,在这种情况下它比我的更好。然而,当没有 NI\xc2\xa0Vision 时,我的方法是处理 IMAQ 像素数据的唯一方法。

\n

  • 两个转换节点都位于“${LABVIEW_INSTALL_DIR}/vi.lib/vision/DatatypeConversion.llb”中。遗憾的是,老实说,它们默认不包含在 IMAQ 调色板中...... (2认同)