首页 > 代码库 > C#解决“Emgu.CV.CvInvoke”的类型初始值设定项引发异常 的其中一个办法
C#解决“Emgu.CV.CvInvoke”的类型初始值设定项引发异常 的其中一个办法
首先要说明的是为什么说是"其中一个办法", 因为引起这个问题的理由有好多个, 这里只提我遇到的一种.
我遇到这个问题的根本原因是EmguCV和OpenCV版本不匹配
这里我重现一下找到原因的过程:
1. 运行程序直接崩溃, 然后debug时找到了在这里崩溃的:
2. 查看详细信息, 点看左边的小三角, 发现了根源:
上面有一句: "{"无法加载 DLL“opencv_core231”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。"}"
从网上下一个opencv_core231.dll放到debug文件夹中可以解决问题, 但毕竟不是长久之计.
3. 然后我就想了, 为什么会缺少231呢, 我的emgu应该对应290呀, 于是我重新点开引用添加界面,
发现问题了! 最近添加里有两批EMGU的dll, 一批是2.9的, 一批是2.3的, 我正是引用了2.3的才出现了这种错误, 估计是我下了别人的程序, 把别人旧版本的emgu的dll引用进来了吧.
把2.9的引用进来就解决问题了.
最后要说的是OpenCV版本和EmguCV版本有什么关系, 因为C#计算是比较慢的, 要想加速底层计算还得用C++等语言来处理, 于是有些EmguCV函数是要调用OpenCV库的,一般一个EmguCV版本对应一个OpenCV版本.
C#解决“Emgu.CV.CvInvoke”的类型初始值设定项引发异常 的其中一个办法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。