我熟悉编写可从 LabVIEW 调用的 DLL,但我很好奇将 IMAQ 图像传递到 DLL 的正确方法是什么。这是我发现的一种方法——我也使用类似的机制将 IMAQ Image 实例从我的 DLL 发布到事件结构。
请注意,将图像实例与集群相互转换的节点位于${LABVIEW_INSTALL_DIR}/vi.lib/vision/DatatypeConversion.llb
,并命名为IMAQ Image Datatype to Image Cluster.vi
和 IMAQ Image Cluster to Image Datatype.vi
,分别。创建的簇由图像名称和一个整数值组成,该整数值表示指向 C/C++ 中的 Image*
类型的指针地址。
这是最好的方法,还是有更好的方法?
最佳答案
我使用不同的方法,使用以下代码将所有图像信息(指针、大小等)放在一个集群中:
然后簇被传递给 DLL 函数,对像素进行操作(当然不改变大小),然后调用 IMAQ 的取消映射像素指针。
讨论后编辑:
您的解决方案依赖于 NI Vision,在这种情况下它比我的要好。然而,当没有 NI Vision 时,我的是使用 IMAQ 像素数据的唯一方法。
关于c++ - LabVIEW、C++ DLL 和 IMAQ 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9301012/