我试图在LabVIEW中调用一个简单的基于openCV的Dll,并不断得到“未找到库或加载失败”错误。
我使用LabVIEW 64位,Dll是用C++为64位构建的。它的功能只是水平翻转图像。我试图复制opencv_world470.dll和opencv_world470d.dll无处不在。与我的Dll相同的目录、system32和LabVIEW.exe所在的目录。我将它们的目录添加到环境变量的PATH中,但它仍然不起作用。当我在我的Dll上运行dumpbin时,它列出了以下依赖项:opencv_world470d.dll opencv_world470.dll VCRUNTIME140.dll api-ms-win-crt-runtime-l1-1-0.dll KERNEL32.dll我尝试运行另一个Dll,它只是对两个数字求和并返回结果,它工作正常。这个简单的Dll根据dumpbin只使用最下面的三个依赖项。为什么LabVIEW找不到openCV的依赖关系?还是其他问题我计划在未来使用更多的openCV DLL,所以理想情况下,我更愿意让openCV库保持动态而不是静态。谢谢你,谢谢
3条答案
按热度按时间8ehkhllq1#
我也有同样的问题。但是当我换了机器它就能工作了。所以我检查了其他几台机器,以确保它不是我的系统问题。找到解决方案后,将opencv dll添加到项目的debug文件夹中,cpp dll就位于该文件夹中。
pb3skfrl2#
有趣的是,你同时链接了发布和调试版本,你提到你依赖于opencv_world470d.dll和opencv_world470.dll。一般来说,开发简单的 Package 器并不复杂,8位灰度图像的代码看起来像这样:
字符串
在这里我放置小项目:https://github.com/AndrDm/OpenCVFlipDemoLV,可能对你或其他人有帮助。安德烈
u7up0aaq3#
我已经设法使用OpenCV与EMGU .NET Package 器和LabVIEW。有些函数需要委托,LV不支持它们,但主要的MAT函数可以工作。