Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法加载DLL';opencv_core290_C#_Winforms_Emgucv - Fatal编程技术网

C# 无法加载DLL';opencv_core290

C# 无法加载DLL';opencv_core290,c#,winforms,emgucv,C#,Winforms,Emgucv,在我的winforms应用程序中,我需要使用一些Emgu.CV库(我已经安装了Emgu 2.9) 问题是我得到了以下错误: System.TypeInitializationException was unhandled HResult=-2146233036 Message=The type initializer for 'Emgu.CV.OCR.Tesseract' threw an exception. Source=Emgu.CV.OCR Typ

在我的winforms应用程序中,我需要使用一些Emgu.CV库(我已经安装了Emgu 2.9)

问题是我得到了以下错误:

System.TypeInitializationException was unhandled
     HResult=-2146233036
     Message=The type initializer for 'Emgu.CV.OCR.Tesseract' threw an exception.
     Source=Emgu.CV.OCR
     TypeName=Emgu.CV.OCR.Tesseract
     StackTrace:
         at Emgu.CV.OCR.Tesseract..ctor(String dataPath, String language, OcrEngineMode mode)
         at ANPR.LicensePlateDetector..ctor(String dataPath) in c:\Users\blabla\Visual Studio 2012\Projects\ANPR\ANPR\LicensePlateDetector.cs:line 30
         at ANPR.Form1..ctor() in c:\Users\blabla\Visual Studio 2012\Projects\ANPR\ANPR\Form1.cs:line 22

   InnerException: System.TypeInitializationException
   HResult=-2146233036
   Message=The type initializer for 'Emgu.CV.CvInvoke' threw an exception.
   Source=Emgu.CV
   TypeName=Emgu.CV.CvInvoke
   StackTrace:
        at Emgu.CV.CvInvoke.CV_MAKETYPE(Int32 depth, Int32 cn)
        at Emgu.CV.OCR.Tesseract..cctor() in c:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\Emgu.CV.OCR\Tesseract.cs:line 26

   InnerException: System.DllNotFoundException
        HResult=-2146233052
        Message=Unable to load DLL 'opencv_core290': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
        Source=Emgu.CV
        TypeName=""
        StackTrace:
             at Emgu.CV.CvInvoke.cvRedirectError(CvErrorCallback errorHandler, IntPtr userdata, IntPtr prevUserdata)
             at Emgu.CV.CvInvoke..cctor() in c:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\Emgu.CV\PInvoke\CvInvoke.cs:line 266
尝试实例化新的Tesseract对象时会发生这种情况:

var tesseract = new Tesseract("", "eng", Tesseract.OcrEngineMode.OEM_TESSERACT_CUBE_COMBINED);
由于引用“opencv_core290”不起作用,我尝试了提供的解决方法。基本上,我将.dll复制到我的项目中,使用“添加现有资源”进行添加
并将其属性修改为“始终复制”。然而,这并不奏效。谢谢你的帮助

我也有这个问题。您应该将x86或x64文件夹中的DLL从“yourEmguFolder/bin”复制到项目的输出目录。然后再次构建项目并运行


我根据本页的描述解决了这个问题。确切地说,opencv DLL应该存在于您的应用程序bin\debug或bin\release文件夹中。您必须关心的主要问题是,x64和x86 DLL的DLL文件夹结构应该保持不变

i、 e将emgu\bin文件夹中的x86和x64文件夹复制到应用程序的调试文件夹中

用于发布-将这两个文件夹添加到VS中的项目中,然后将其属性设置为“始终复制”,这将自动处理文件夹结构


我也面临同样的问题,这个解决方案对我很有效

当我添加opencv_core290.dll、opencv_highgui290.dll、opencv_imgproc290.dll时, 我在下面遇到了同样的问题:

System.DllNotFoundException:无法加载DLL“opencv_core290”:找不到指定的模块。(来自HRESULT的异常:0x8007007E) 在Emgu.CV.CvInvoke.cvRedirectError(CvErrorCallback errorHandler、IntPtr userdata、IntPtr prevUserdata)


在解决了这个问题后,我添加了一个dll文件,名为cudart64_55.dll,并解决了这个问题。

你确定你的dll在“bin”文件夹中的exe旁边吗?@AhmetKakıcı再次检查你的问题是否类似于:这就是我问的原因。这没有太大帮助:(这会很有帮助,但发布项目时该怎么做。将这些非托管DLL放在何处这是一种“暴力”解决方案,因为您不需要所有文件,但要达到目标,需要+1