tesseract OCR エンジンの前処理ステップとして画像からテキスト領域を検出したいのですが、入力がテキストのみの場合はエンジンが正常に動作しますが、入力画像に非テキスト コンテンツが含まれている場合は正常に動作しないため、画像内のテキスト コンテンツのみを検出したいのですが、それを行う方法のアイデアは役に立ちます、ありがとう。
4 に答える
私は画像処理の経験が豊富ではありませんが、私の理論的なアプローチをお手伝いできれば幸いです。
ほとんどの場合、テキストは平行な水平行を形成しており、行間のスペースには多くの背景ピクセルが含まれています。これは、この問題を解決するために利用できます。したがって...画像内のすべてのピクセル列を構成すると、出力として幅 1 ピクセルの画像が得られます。入力画像にテキストが含まれている場合、出力は、暗い領域の後に明るい領域が繰り返し続く周期的なパターンになる可能性が非常に高くなります。これらの暗いピクセルの「グループ」はテキスト コンテンツの位置を示し、明るい「グループ」はテキスト コンテンツの位置を示します。" は、個々の行間のギャップを示します。おそらく、明るい領域が他の領域よりもはるかに小さいことに気付くでしょう。テキストは、他のどの画像要素よりもはるかに一般的であるため、簡単に分離できるはずです.
これらの定期的な再発を検出する手順を実装する必要があります。入力画像にこれらの特徴があることをスクリプトが判断できるようになると、テキストが含まれている可能性が高くなります。(ただし、このアプローチでは、実際のテキストと単純な横縞を区別することはできません...)
次のステップでは、上記の方法を使用して、段落の境界を決定する方法を見つける必要があります。私はかなりダミーのアルゴリズムについて考えています。魔女は入力画像をより小さく狭いストライプ (50-100 ピクセル) に分割し、これらの領域を個別にチェックします。次に、これらの結果を比較して、テキストで埋められた可能性のある領域のマップを作成します。この方法はそれほど正確ではありませんが、おそらく OCR システムには影響しません。
最後に、テキスト マップを使用して、必要な場所でのみ OCR を実行する必要があります。
一方、入力テキストが 3 ~ 5 度以上回転している場合、このメソッドは失敗します。数行しかない場合、パターン検索の信頼性が非常に低くなるため、別のバックドローがあります。より多くの行、より正確...
よろしく、G.
私はstackoverflow.comを初めて使用しますが、この質問を共有する読者にとって役立つ可能性のある、この質問に似た質問への回答を書きました。質問が重複しているかどうかは、これが最初の質問なので、他の人に任せます。その回答をコピーしてここに貼り付ける必要がある場合は、お知らせください。また、私が答えた質問ではなく、この質問を最初にグーグルで見つけたので、これはリンクを持つより多くの人々に利益をもたらすかもしれません. 特に、テキスト領域を取得するさまざまな方法を提供するためです。私にとって、この質問を調べたところ、問題のケースに適合しませんでした。