2012-11-15 50 views
0

在Emgu.CV.OCR示例项目中,有一个类Tesseract,它是Tesseract-OCR引擎的包装。 在Tesseract.cs,有喜欢的声明:EmguCV从哪里使用tesseract?

[DllImport(CvInvoke.EXTERN_LIBRARY, CallingConvention = CvInvoke.CvCallingConvention)] 
private static extern IntPtr TessBaseAPICreate(); 

CvInvoke.EXTERN_LIBRARY点cvextern.dll。

我在DependencyWalker中打开了cvextern.dll,并且在任何地方都没有任何Tesseract函数,只有OpenCV函数。

我确定我错过了一些明显的东西,但是这里使用的实际函数定义在哪里?

回答

3

如果我在DependencyWalker中打开cvextern.dll,并在左侧窗格中单击CVEXTERN.DLL,我可以在列表中看到Tesseract函数。你将不得不滚动大部分的一路下跌该名单,但我能找到的:

TessBaseAPICreate 
TessBaseAPIExtractResult 
TessBaseAPIGetUTF8Text 
TessBaseAPIInit 
TessBaseAPIRecognizeImage 
TessBaseAPIRelease 
TessBaseAPISetVariable 

为了进一步证明,我下载Emgu源(指令here)和正方体库被包含\ Emgu.CV .Extern \正方体。

上述方法的实现位于\ Emgu.CV.Extern \ tesseract \ tesseract.cpp中。基本上它们使用EmguTesseract类,它继承自tesseract::TessBaseAPI