2017-07-26 10 views
0

私はない正確なたTesseract OCRデータC++

const char* lang = "eng"; 
QString filename = "D:/image.png"; 

tesseract::TessBaseAPI tess; 
tess.Init(NULL, lang, tesseract::OEM_DEFAULT); 
tess.SetPageSegMode(tesseract::PSM_AUTO); 

FILE* fin = fopen(filename.toStdString().c_str(), "rb"); 
if (fin == NULL) 
{ 
    std::cout << "Cannot open " << filename.toStdString().c_str() << std::endl; 
    return; 
} 
fclose(fin); 

STRING text; 
if (tess.ProcessPages(filename.toStdString().c_str(), NULL, 0, &text)) 
{ 
    ui->plainTextEdit->setPlainText(QString::fromUtf8(text.string())); 
//show result in plainttext qt gui 

} 

がための十分なデータが正確でない入れ、このコードを使用してPNG画像 からテキストを取得するにはQTでたTesseract OCRのC++ライブラリを使用していますテーブルのデータとそれは私に奇妙な文字を与えると私はオンラインのOCRのウェブサイトをテキスト(同じ画像)にそれを100%正確でそれを行うので、私はこの間違ったテキストを与える私のイメージを変換するこの問題ですライブラリと一緒に?または私のコード?またはより良いフリーライブラリーがあれば私はより正確に使うことができますか?

私は、OCRライブラリは私に正しいデータ

+3

OCRの正確さは、計算を行うクラスに依存するQtに依存しないので、Qtタグは無関係です。 – eyllanesc

+0

ページを処理する前に前処理を試みていますか?あなたのフォーラムを見ると、いくつかのユーザーは白黒イメージ(白い背景に黒いフォント)でテキストを試してみるべきだと言いますが、テキストの周りにはうねりがあります。オンラインOCRほとんどの場合、画像を自動的に編集して削除するためのものがあります。 – Eddge

+0

はい私はGhostscriptを使用して、このプロパティを持つPDFファイルから画像を取得します。-dFirstPage = 1 -dLastPage = 1 -dBATCH -dNOPAUSE -sDEVICE = pnggray -r300 -dUseCropBox –

答えて

0

Iを取得する必要がありますので、私は良い品質の画像を取得するためにゴーストスクリプトを使用して、PDFから画像を得ました私はあなたの問題が大きな可能性を持って下の行に関係していると思います:

tess.Init(NULL, lang, tesseract::OEM_DEFAULT); 

tessdataフォルダが必要です。 NULLの代わりに、"C:/tessdata/"のようにフォルダ名を記述することができます。繰り返しますが、私はcppを経験していないので、スラッシュ「/」やバックスラッシュ「\」を決めることができます。このフォルダには言語ファイルが含まれている必要があります。

+0

nullをtessdataフォルダに変更しましたが、同じ問題 –

+0

多分それは{const char * lang = "eng";}行です。それを{string}として変更できますか?または、次のように行を変更することができます。{tess.Init( "c:/ tessdata /"、 "eng"、3);} – nes

0

彼のコメントに記載されているように、imagemagickにはscriptsの束がある画像前処理のものを適用する必要があります。 もちろん、OpenCVはこのようなことにも大いに役立ちます。

次の点は、デフォルトでページ情報全体を抽出する必要性を満たすPSMモードです。

また、オンラインOCRの結果は、前述したとおり100%ではありません。

There is "1 S Days" instead of "15 Days" 
There is "Mail: finance(a)" instead of "E Mail: [email protected]" 
There is "TiA THE GREEN HOL1 5" instead of "T/A THE GREEN HOU 5" 

など

使用しているたTesseractバージョン

? 3.05を使用することを強くお勧めします。 (4.0ははるかに良い結果を示しますが、まだ公式にリリースされていません)。

また次のリンクは、検索結果であなたを助けることができる:https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality

P.S. )