Visual Studio2010にC++プロジェクトがあり、OCRを使用したいと考えています。私はTesseractの多くの「チュートリアル」に出くわしましたが、悲しいことに、私が得たのは頭痛と無駄な時間だけでした。
私のプロジェクトでは、画像をMatとして保存しています。私の問題の1つの解決策は、このマットを画像(image.jpgなど)として保存してから、次のようにTesseract実行可能ファイルを呼び出すことです。
system("tesseract.exe image.jpg out");
これで出力out.txtが得られ、それから呼び出します
infile.open ("out.txt");
tesseractからの出力を読み取ります。
それはすべて良いですし、椅子のように機能しますが、それは最適な解決策ではありません。私のプロジェクトではビデオを処理しているので、10 + FPSでsave/call .exe/write/readは私が本当に探しているものではありません。 Tesseractを既存のコードに実装して、Matを引数として渡し、すぐに結果を文字列として取得できるようにしたい。
Visual Studio2010でTesseractOCRを実装するための優れたチュートリアル(ステップバイステップ)を知っていますか?またはあなた自身の解決策?
OK、わかりましたが、ReleaseおよびWin32構成で機能しますのみ(デバッグまたはx64なし)。デバッグ構成の下に多くのリンクエラーがあります。
そう、
1。まず、準備したライブラリフォルダ(Tesseract + Leptonica)をここからダウンロードします。
2。tesseract.Zip
をC:\
に抽出します
3。Visual Studioで、C/C++ > General > Additional Include Directories
の下に移動します
挿入C:\tesseract\include
4。Linker > General > Additional Library Directories
の下
挿入C:\tesseract\lib
5。Linker > Input > Additional Dependencies
の下
追加:
liblept168.lib
libtesseract302.lib
サンプルコードは次のようになります。
#include <tesseract\baseapi.h>
#include <leptonica\allheaders.h>
#include <iostream>
using namespace std;
int main(void){
tesseract::TessBaseAPI api;
api.Init("", "eng", tesseract::OEM_DEFAULT);
api.SetPageSegMode(static_cast<tesseract::PageSegMode>(7));
api.SetOutputName("out");
cout<<"File name:";
char image[256];
cin>>image;
PIX *pixs = pixRead(image);
STRING text_out;
api.ProcessPages(image, NULL, 0, &text_out);
cout<<text_out.string();
system("pause");
}
OpenCVおよびMatタイプの画像との相互作用については、 [〜#〜] here [〜#〜]
前回の返信から多くのことがありましたが、他の人の助けになるかもしれません。
(この回答は、ブルースの回答に対するコメントである必要があります。混乱して申し訳ありません。)
APIを介してライブラリを使用する必要があります。
おそらく:
ライブラリをダウンロードすることから始めます( https://code.google.com/p/tesseract-ocr/downloads/detail?name=tesseract-3.02.02-win32-lib-include-dirs.Zip&can=2&q= )。 Visual 2008でコンパイルされていますが、それで十分です。
APIを直接使用し(例、それを使用しているオープンソースプロジェクトを見てください: https://code.google.com/p/qtesseract/source/browse/#svn%2Ftrunk%2Ftessdata )、この回答からのリンク: 小さなc ++プロジェクトでtesseractocr(または他の無料のocr)を使用するにはどうすればよいですか?