3

スクリーンショット画像でテキストを囲む四角形などを削除して、光学式文字認識を実行してスクリーンショットから正確なテキストを取得できるようにします。

バックグラウンド:

他のアプリケーションで使用するためにレガシー アプリケーションからデータを抽出するためにこれを行っています。関連ファイルはクローズドで独自のバイナリ形式であるため、これがこのデータを取得する唯一の方法です。

AutoItScript を使用してアプリケーションを駆動し、UI にデータを表示します。次に、これをスクリーンショットして、tesseract にフィードします。

私はすでにUIの自動化にある程度成功しており、tesseractを使用してビットマップからプレーンASCIIテキストを取得することができました。

tesseract/OCR での使用について議論している AutoItScripr フォーラムの記事がいくつかありますが、特に私の質問ではありません。 http://www.autoitscript.com/forum/index.php?s=6c32c3ece12756e635a619cdf175eff9&showforum=2

私は何をする必要がありますか

一部のテキストを密接に囲む幅が 1 ピクセルの細い四角形があります。tesseract に入力すると、たとえば四角形の垂直線として I として認識されます。

四角形を削除する方法やベストプラクティスについて何か考えはありますか?

たとえば、.png ファイルで四角形を上書きするための汎用コマンド ライン ベースのツールセットがあるかどうかを尋ねています。次に、これを介して .png を渡し、tesseract に渡します。

私が使用したtesseractリリース/セットアップの詳細は次のとおりです。

ここにアクセスしてください: http://code.google.com/p/tesseract-ocr/downloads/list - Tesseract を起動して実行し、ビットマップ化されたテキストを ascii テキストに認識するための基本的な英語の汎用文字セットについては、tesseract-2.00 を使用します。 eng.tar.gz (執筆時点での最新バージョン: 「Tesseract の英語データ (2.00 以降) 2007 年 7 月 989 KB 84845」)

スタック オーバーフローで既に見た関連する質問

これらでは、私の質問に対する完全な回答が得られていないか、商用ソリューションが販売されています。この段階では商用ソリューションを検討したくありません。

4

1 に答える 1

1

これに対する無料の既製のソリューションはおそらくないでしょうが、長方形がフォントのアルファベットで有効な文字になることは決してなく、したがって安全に削除できると想定するのはおそらく安全であるため、独自のコーディングはそれほど難しくないはずです. また、すべての長方形の境界線が正確に 1 ピクセル幅であることも役立ちます。

したがって、正確に 2 本の垂直線によって同じ長さの別の平行線に結合されている連続した水平線を検索します。画像内のすべての四角形が見つかるまで検索を繰り返し、Graphics.DrawRectanglePens.Transparentを使用してそれらをすべて透明にします。検索が完了するまで四角形を透明にレンダリングしないでください。そうしないと、重なっている四角形が見つかる前に一部が消去される危険があります。これは初心者向けの提案にすぎません。私はこのアルゴリズムを実装またはデバッグしていません。

于 2010-04-27T14:33:22.953 に答える