2012-11-15 92 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