1

Web で見つけられるのは OCR に関するものだけですが、まだそこにはありません。文字が画像のどこにあるかを認識しなければなりません。

どんな助けでも大歓迎です

4

2 に答える 2

8

興味深いことに、その答えは見かけほど単純ではないということです。画像上の文字を見つけることが OCR の最初のステップだと考える人もいるかもしれませんが、そうではありません。実際には、実際に認識を終了するまで、各文字がどこにあるかはわかりません。

それが完全に機能する方法は、認識しようとしている画像の種類によって異なります。最初に、テキスト領域 (ブロック) とその他すべてで画像をセグメント化する必要があります。

ほんの数例:

  • 車の写真のナンバー プレートを認識している場合は、まずナンバー プレートを見つけてから、それを個別の文字に分割する必要があります。
  • いくつかのアプリケーション フォームを認識している場合は、レイアウトを知るだけで、テキストがある領域を特定できます。
  • 本のページのスキャンを認識している場合は、画像とテキスト領域を区別してから、テキストのみを処理する必要があります。

この瞬間から、元の画像はもう必要ありません。必要なのは、テキスト ブロックの 2 値化された画像だけです。すべての OCR アルゴリズムは、バイナリ イメージで機能します。また、線をまっすぐにする、遠近法を修正する、ゆがみを修正するなど、他の種類の画像変換を行う必要がある場合もあります。これらはすべて、認識している画像の種類によって異なります。

テキスト ブロックが見つかって正規化されたら、さらに進んでテキスト ブロック上のテキスト行を見つける必要があります。テキストの水平線の些細なケースでは、水平線ごとにピクセル ヒストグラムを作成することで非常に簡単になります。

さて、セリフがあると、シンプルになったので、文字に分割できると思うかもしれません。繰り返しますが、それは間違っています。文字がつながったり、文字が途切れたり、さらには合字 (2 つの文字が 1 つの形を形成したもの) になったり、文字の一部が次の文字の真上または下に移動したりする現象があります。あなたがすべきことは、行を単語や個々の文字に分割するいくつかのヒポテシスを作成し、OCRをすべてのバリアントで試し、すべての仮説を信頼レベルで重み付けすることです。最後のステップは、辞書を使用してこのグラフのさまざまなパスをチェックし、最適なものを選択することです。

そして今、すべてを実際に認識したとき、個々のキャラクターがどこにいるかを言うことができます.

したがって、簡単な答えは、OCRプログラムで画像を認識し、その出力から文字の座標を取得することです。

于 2011-02-04T07:50:54.867 に答える
0

一般的に言えば、ほぼ無地の小さな連続した領域を探します。各ピクセルをサンプリングし、元のピクセルの色のしきい値内に収まる近くのピクセルの配列を作成することをお勧めします (一致する各ピクセルの隣人について繰り返します)。配列全体を潜在的な文字として脇に置いて (または今すぐチェックして)、次に進みます (スピードアップのために以前に収集されたピクセルを無視する可能性があります)。

テキストのフォントサイズ、品質、および/または色が事前にわかっている場合は、最適化が可能です。そうでない場合は、「連続した領域」を構成するしきい値にかなり寛大になりたいと思うでしょう。

于 2011-02-04T05:21:04.330 に答える