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=-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
This happens when trying to instantiate a new Tesseract object:
var tesseract = new Tesseract("", "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!