OCRで読める黒板の画像を取得しようとしています。当然のことながら、ほとんどの OCR ソフトウェアは汚い画像を好みません。画像をクリーンアップするには、どのような画像処理を行う必要がありますか?
6 に答える
OCRソフトウェアをもう試しましたか?OCR ソフトウェアは、基本的に既に白黒の画像を読み取るのに適している可能性があります。
ただし、そうする必要がある場合は、次のことを試すことができます。
- 画像にしきい値を設定します。
- 基本的に、画像のグレースケール バージョンを取得し、それを黒/白のピクセルに変換します。
- Binary Dilation を実行して、残りのオブジェクトを成長させます
- バイナリ侵食を実行
アイデアは、拡張してから侵食することで、粗い/ノイズの多いエッジを削除し、スケルトン化された画像をOCRに渡すことができます。
同様の結果を達成するための方法はおそらくたくさんあります。コンピューター ビジョンに関する本全体が存在することを考えると、この回答はそれらを正当化することはほとんどありません。
私が持っている唯一のテキストは 1997 年のものですが、それ以降、このテーマについて書かれたものは確実に増えています。
- 画像処理とコンピュータ ビジョンのアルゴリズム - JR Parker
- デジタル画像処理 -ゴンザレス / ウッズ
OCRソリューションの選択にどれほど制約があるかはわかりませんが、ABBYY OCRエンジン(およびそれに基づくWeb API、http://www.wisetrend.com/wisetrend_ocr_cloud.shtml)には、自動画像クリーンアップ/テクスチャ削除オプションが含まれています。
Photoshop では、 [レベル] ダイアログが最も便利な画像調整になる場合があります。これをコードで模倣することは、完全に別の問題です。
レベルの基本は、輝度レベルの最大、最小、および中間点を調整することです。通常、ヒストグラムに表示されます。目的のコントラストの量が得られるようにポイントを調整しますが、画像内のテキストが最も明確に定義されるように中間点も移動します。OCR アプリケーションにとって重要です。中間点を移動することで、通常は手書きを取り囲むグレースケールのぼやけを、画像の明るい (または暗い) 領域に隠すことで「取り除く」ことができます。
また、このような調整の後、画像を 1 ビットに変換して、すべてを強制的に黒または白にすることもできます。場合によっては、これにより OCR プロセスが高速化されます。ただし、注意してください。詳細も破棄されます。
率直に言って、画像を反転し (色を反転して、文字が白地に黒になるようにします)、コントラストを少し上げます。明るさを変更して、消去されたチョークの霧が背景に消えるようにすることができます。
Roberts Cross や Sobel operator などのエッジ検出手法を試して、画像からノイズを除去しましたか? 画像の品質を見なければ、それがどれほど効果的かはわかりません.
市販のソリューションもありますが、ボード イメージのクリーンアップは未解決の問題のようです。未解決の問題に OCR を追加すると、未解決の問題が発生します。