EmguCV在哪里使用tesseract?

时间:2012-11-15 08:37:56

标签: c# dllimport emgucv

在Emgu.CV.OCR示例项目中,有一个类Tesseract,它是Tesseract-OCR引擎的包装器。 在Tesseract.cs中,有如下声明:

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

CvInvoke.EXTERN_LIBRARY指向cvextern.dll。

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

我确定我遗漏了一些明显的东西,但这里使用的实际功能定义在哪里?

1 个答案:

答案 0 :(得分:2)

如果我在DependencyWalker中打开cvextern.dll并单击左侧窗格中的CVEXTERN.DLL,我可以在列表中看到Tesseract功能。你必须在该列表的大部分位置滚动,但我可以找到:

TessBaseAPICreate
TessBaseAPIExtractResult
TessBaseAPIGetUTF8Text
TessBaseAPIInit
TessBaseAPIRecognizeImage
TessBaseAPIRelease
TessBaseAPISetVariable

为了进一步证明,我下载了Emgu的源代码(说明here),Tesseract库包含在\ Emgu.CV.Extern \ tesseract中。

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