ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[EmguCV]CvInvoke的类型初始化设定发生例外 (CvInvoke TypeInitialization Exception) 处理

2019-09-06 13:00:26  阅读:315  来源: 互联网

标签:初始化 Exception 加入 TypeInitialization EmguCV 例外 CvInvoke


在安装篇,我们介绍了如何安装EmguCV到你的Visual Studio上,但是有时候当你一切都准备就绪,要开始执行范例程序时,你可能会遇到编译器跳出CvInoke的类型初始化设定发生例外 (CvInvoke TypeInitialization Exception) 的问题,但是又不知道如何去修改他



本篇的文章除了希望介绍给遇到CvInoke 例外问提的朋友们一个快速地排除方法之外,也是我们一个笔记,自从知道这问题后,即便再次遇到也可以快速排除


前言


在安装篇,我们介绍了如何安装EmguCV到你的Visual Studio上,但是有时候当你一切都准备就绪,要开始执行范例程序时,你可能会遇到编译器跳出CvInoke的类型初始化设定发生例外 (CvInvoke TypeInitialization Exception) 的问题,但是又不知道如何去修改他

本篇的文章除了希望介绍给遇到CvInoke   例外问提的朋友们一个快速地排除方法之外,也是我们一个笔记,自从知道这问题后,即便再次遇到也可以快速排除

CvInvoke 类型初始化设定发生例外 (TypeInitialization Exception )


其实这个例外会出现的原因基本上只有两大个而已,就是“发布平台与安装的EmguCV开发版本平台是否一致” 与 “CvInvoke类库有无参考到openCV动态函数库”

每次遇到这个问题也都是这两个原因之一

以下是CvInvoke 类型初始化设定发生例外图示:

cvinvoke_typeinitialization_exception

原因一:发布平台与安装的EmguCV开发版本平台是否一致

如果因为电脑平台是x64架构而下载的是x64版本的EmguCV,或是 打算开发x64架构,请记得在debug或是release把平台也改成x64,不同的版本,会出现此例外问题

x64_platform

原因二:CvInvoke类库有无参考到openCV动态函数库

CvInvoke里面提供了很多影像处理的基本方法,并且他们全部都是接自openCV的DLL函数库,如下图撷取自EmguCV官网

并且,如果你亲自去看的话也会发现其实里面也调用openCV的函数库方法来做处理;通常有可能是因为没有把这些参考路径加入到项目中,所以让项目在执行时找不到(此问题和原因一无关联,即便你是下载x86版本,如果没有注意到这部分也会发生例外)

cvInvoke

所以要确认是否在安装EmguCV时,有把OpenCV的DLL加入参考路径(例如x86版本会在在EmguCV的binx86底下有)

基本上这部分如果以照着安装篇来做就不会发生,因为参考路径已经提到如何加入。

但是通常为了直接测试,建议可以直接在项目中加入openCV的DLL文件,把binx86中的dll加入到项目中,并选择属性永远输出,

1. 项目右键->加入现有项目->加入binx86下的opencv dll(2.4.0为例可加入opencv_core240.dll与opencv_imgproc240.dll,其余的依需求加入)

Add openCV

2.加入后对DLL右键->属性->复制到输出目录改成永远输出

always output

然后编译执行,他就会把文件复制到输出目录直接从那边找到参考路径,也就不会有例外发生

结论


以上就是本人通常遇到此问题的快速排除方法,希望遇到的人也可以透过这篇排除问题而有帮助到

参考数据

Setting up EMGU C Sharp


文章中的叙述如有观念不正确错误的部分,欢迎告知指正 谢谢 =)

另外要转载请附上出处 感谢

原文:大专栏  [EmguCV]CvInvoke的类型初始化设定发生例外 (CvInvoke TypeInitialization Exception) 处理




标签:初始化,Exception,加入,TypeInitialization,EmguCV,例外,CvInvoke
来源: https://www.cnblogs.com/petewell/p/11474217.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有