Unable to load DLL 'opencv_core290'

问题:

In my winforms application I need to use some Emgu.CV libraries (I have installed Emgu 2.9).

Problem is that I get the following error:

System.TypeInitializationException was unhandled
     HResult=-2146233036Message=The type initializer for'Emgu.CV.OCR.Tesseract' threw an exception.Source=Emgu.CV.OCR
     TypeName=Emgu.CV.OCR.TesseractStackTrace:
         at Emgu.CV.OCR.Tesseract..ctor(String dataPath,String language,OcrEngineMode mode)
         at ANPR.LicensePlateDetector..ctor(String dataPath)in c:\Users\blabla\Visual Studio2012\Projects\ANPR\ANPR\LicensePlateDetector.cs:line 30
         at ANPR.Form1..ctor()in c:\Users\blabla\Visual Studio2012\Projects\ANPR\ANPR\Form1.cs:line 22InnerException:System.TypeInitializationExceptionHResult=-2146233036Message=The type initializer for'Emgu.CV.CvInvoke' threw an exception.Source=Emgu.CV
   TypeName=Emgu.CV.CvInvokeStackTrace:
        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 26InnerException:System.DllNotFoundExceptionHResult=-2146233052Message=Unable to load DLL 'opencv_core290':The specified module could not be found.(Exceptionfrom 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

This happens when trying to instantiate a new Tesseract object:

var tesseract =newTesseract("","eng",Tesseract.OcrEngineMode.OEM_TESSERACT_CUBE_COMBINED);

Since referencing "opencv_core290" does not work, I tried the workaround provided here. Basically, I copied the .dll to my project, added it by using "Add existing resource" and modified it's property to "Copy always". This did not work however. Thanks for any help!

 

解决方法:

I had this problem too. You should copy x86 and x64 folders from "yourEmguFolder/bin" to your project's output directory. Then build project again and run.

I solved it according to the description on this page EMGU WIKI

posted @ 2014-02-14 22:49  遥望星空  阅读(2744)  评论(0编辑  收藏  举报