我在2008下用c#写的一个控制台程序如下
String win = "Test Window";
CvInvoke.cvNamedWindow(win);
Intptr ptr = CvInvoke.cvLoadImage("图像文件名", Emgu.CV.CvEnum.LOAD_IMAGE_TYPE.CV_LOAD_IMAGE_ANYCOLOR);
CvInvoke.cvShowImage(win, ptr);
CvInvoke.cvWaitKey(0);
CvInvoke.cvDestroyWindow();编译没有错误,但是进入调试时会出现
Emgu.CV.CvInvoke的类型初始值设定项引发异常
但是我在2005下却没有一点问题,请达人指点,不甚感激
如果没有相关的dll,可以在这里下载到http://www.emgu.com/wiki/index.php/Download_And_Installation
String win = "Test Window";
CvInvoke.cvNamedWindow(win);
Intptr ptr = CvInvoke.cvLoadImage("图像文件名", Emgu.CV.CvEnum.LOAD_IMAGE_TYPE.CV_LOAD_IMAGE_ANYCOLOR);
CvInvoke.cvShowImage(win, ptr);
CvInvoke.cvWaitKey(0);
CvInvoke.cvDestroyWindow();编译没有错误,但是进入调试时会出现
Emgu.CV.CvInvoke的类型初始值设定项引发异常
但是我在2005下却没有一点问题,请达人指点,不甚感激
如果没有相关的dll,可以在这里下载到http://www.emgu.com/wiki/index.php/Download_And_Installation
解决方案 »
- vs2005在64位平台下编译的程序有问题
- 这个正则表达式应该怎么写
- 急!WPF项目中使用另外一个程序集中的资源字典引发System.IO.FileNotFoundException
- 求一个类似注册码的算法。
- class(get/set) 比较是否相等 望高手解疑
- 熟悉类库,什么时候才能得心应手!!
- 【求助】XML表头的输出!
- 关于textbox的滚动条
- 如何用c#实现sql server 和oracle表的相互导入阿?谢谢
- 请问要如何得到播放页面的URL呢?
- 如何在C#中通过读取硬盘序列号实现软件加密
- 尝试为文件 D:\ASPNETDB.MDF 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。请问如何解决
那要怎么设置呢?麻烦说一下吧,我也是这个问题,我把Emgu.CV.Windows.Binary-1.4.0.0.zip里解压出来的文件里的DLL加到了项目引用里,把Emgu.CV.SourceAndExamples-1.4.0.0.zip里解压出来的文件夹src设置了系统路径,但是还是有这个问题.详细的Exception说明我看了一下,是说"无法加载cxcore110.dll",可是这个DLL已经在系统路径下面了,而且在CMD下面任意目录下我都可以直接输入cxcore110.dll,VS直接就打开了.但是项目里还是有问题.我试过把几个相关的DLL放在System32下面\把其所在的目录设置到Path里面\把相关的DLL放在项目目录下面,都不行.求高手解惑.附1:我的测试代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Emgu.CV;
using Emgu.CV.UI;namespace OpenCV_Cell {
class Program {
static void Main (string[] args) {
Image<Bgr,Byte> image;
image = new Image<Bgr, Byte> (640, 480); //在这一行引发了异常
}
}
}附2:"Emgu.CV.CvInvoke的类型初始值设定项引发异常"的详细信息:
未处理 System.TypeInitializationException
Message="“Emgu.CV.CvInvoke”的类型初始值设定项引发异常。"
Source="Emgu.CV"
TypeName="Emgu.CV.CvInvoke"
StackTrace:
在 Emgu.CV.CvInvoke.cvCreateImageHeader(MCvSize size, IPL_DEPTH depth, Int32 channels)
在 Emgu.CV.Image`2.AllocateData(Int32 rows, Int32 cols)
在 Emgu.CV.Image`2..ctor(Int32 width, Int32 height)
在 OpenCV_Cell.Program.Main(String[] args) 位置 E:\My Documents\Visual Studio 2008\Projects\OpenCV_Cell\OpenCV_Cell\Program.cs:行号 12
在 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
InnerException: System.DllNotFoundException
Message="无法加载 DLL“cxcore110.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。"
Source="Emgu.CV"
TypeName=""
StackTrace:
在 Emgu.CV.CvInvoke.cvRedirectError(CvErrorCallback errorHandler, IntPtr userdata, IntPtr prevUserdata)
在 Emgu.CV.CvInvoke..cctor()
InnerException:
“C:\Program Files\OpenCV”,那么就有个 “C:\Program Files\OpenCV\bin”文件夹,这个文件夹里有cv100.dll, cvaux100.dll, cvcam100.dll, cxcore100.dll, cxts001.dll, highgui100.dll, libguide40.dll and ml100.dll ,这几个动态链接库。把它们拷贝到你的VS项目中的bin文件夹中,就不会发生错误了。我刚试过,用的就是本站下载的“C#写的基于opencv的程序”。
http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=zh-cn
我也类似的问题,解决了
http://code.msdn.microsoft.com/KB961894/Release/ProjectReleases.aspx?ReleaseId=2067