繁体   English   中英

EmguCV 64位构建运行时错误

[英]EmguCV 64-bit build runtime error

我遇到了在W7 / x64 OS上使用.net 4.0和VS2010将现有的32位EmguCV( 2.3版 )构建为64位的问题。 我已经购买了商业许可证(如果有关系的话),并从收据中提供的链接下载了该许可证。

错误是

System.TypeInitializationException was unhandled
 Message=The type initializer for 'Emgu.CV.CvInvoke' threw an exception.
 Source=Emgu.CV
 TypeName=Emgu.CV.CvInvoke

我按照本文提供的说明进行操作。 实际上,我使用了本文中的示例项目,并且使用V2.2可以很好地构建它们,但是当我替换为V2.3二进制文件(emgu和opencv)时,就会遇到错误。

有谁成功建立了Emgu( 2.3.x版 )x64项目? 请提供一些指导。

出现此错误的原因(其他人应该遇到相同的问题)是,即使输出“ bin”目录中存在程序,程序也无法访问opencv_imgproc231.dll或opencv_core231.dll。

有两种解决方案:

  1. 将它们添加到项目中,并将其属性设置为copy always因为它们是EMGU的两个关键文件。

  2. 如果第1步不起作用,请用新副本替换bin文件夹中的当前密钥文件。

如果这两种方法均失败,则说明构建可能存在问题,因此请从Sourceforge下载EMGU的新副本,然后重试。 稍后将在技术文章中包含该错误,以提供有关如何解决该错误的更清晰的说明。

克里斯,干杯

无需将它们添加到项目中; VS不会让你。 只需在public static partial class CvInvoke打开FaceRecognizer.cs并更改:

[DllImport(CvInvoke.EXTERN_LIBRARY, CallingConvention = CvInvoke.CvCallingConvention)] 

至:

[DllImport(Emgu.CV.CvInvoke.EXTERN_LIBRARY, CallingConvention = Emgu.CV.CvInvoke.CvCallingConvention)] 

确保更改所有它们。

首先以这种方式进行测试:从emgu cv installaiton目录中打开一个示例项目并运行它。 例如,打开hello world示例并尝试运行它。 如果示例项目运行顺利,则说明安装正确。

对于emgu简历样本项目,在该项目生成设置输出路径选项的值设置为” .. \\ .. \\ bin'的 要解决您的项目问题,请在Visual Studio中打开项目,并将“ 输出路径”选项的值设置为'C:\\ Emgu \\ emgucv 2.9 \\ bin' 尝试运行该项目。 它必须成功运行。

现在,将Output Path选项的值重新设置为bin \\ Debug \\ 然后,使用ADD- > Existing Item菜单将'C:\\ Emgu \\ emgucv 2.9 \\ bin'文件夹中的所有DLL文件添加到您的项目中。 同样,使用ADD- > Existing Item菜单将'C:\\ Emgu \\ emgucv 2.9 \\ bin \\ x64'文件夹中的所有DLL文件添加到您的项目中。 现在,转到属性窗口,然后将所有dll文件的“ 复制到输出目录”选项设置为“始终复制” 最后,在“配置管理器”窗口中,为x64平台创建一个新配置。

祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM