2

通常は印刷されているが手書きの可能性があるテキストデータを含む画像から不均一な照明を取り除くにはどうすればよいですか? 撮影中に光が反射したため、光の斑点がある場合があります。この作業を完璧に行っている Halcon プログラムの segment_characters 関数を見てきましたが、オープン ソースではありません。画像を、背景に一定の照明があり、テキストのより暗い色の領域を持つ画像に変換したいと考えています。そのため、2値化は簡単でノイズがありません。テキストは、背景よりも暗い色であると見なされます。何か案は?

4

6 に答える 6

2

形態学的手法を試してみましたか? Closure-by-reconstruction ( Gonzalez、Woods、および Eddins で提示されているように) を使用して、背景の照明レベルのグレースケール表現を作成できます。次の方法で、効果的な照明を多かれ少なかれ標準化できます。

1) 画像内のすべてのピクセルの平均強度を計算する

2) Closure-by-reconstruction を使用して背景の照明レベルを推定する

3) 元画像から(2)の出力を差し引く

4) (1) の平均強度を (3) の出力のすべてのピクセルに追加します。

基本的に、再構築による閉鎖は、特定のサイズよりも小さいすべての画像特徴を削除し、「前景」(キャプチャしたいテキスト) を消去し、「背景」(照明レベル) のみを残します。元の画像から結果を差し引くと、小さな偏差 (テキスト) のみが残ります。これらの偏差に元の平均強度を追加するのは、単純にテキストを読みやすくするためです。結果として得られる画像は、元の画像を光で正規化したバージョンのように見えます。

于 2010-05-23T12:19:52.757 に答える
2

グローバルしきい値アルゴリズムの代わりにローカルしきい値を使用します。画像 (グレースケール) を小さな画像 (たとえば 50x50 ピクセル) のグリッドに分割し、個々の画像ごとにしきい値アルゴリズムを適用します。

于 2012-01-29T15:51:07.817 に答える
2

厳密に言えば、画像のピクセルにアクセスできると仮定すると (トピックは豊富に用意されているので、プログラミング言語でこれを達成する方法をオンラインで検索できます)、演習ではピクセルを 1 回調べて「暗さのしきい値」を決定します。これを行うには、各ピクセルをRGB から HSLに変換して、各ピクセルの明度レベル コンポーネントを取得します。このプロセス中に、 「暗さのしきい値」として使用できる画像全体の平均明度を計算します。

画像の平均明度レベルを取得したら、画像ピクセルをもう一度調べて、ピクセルが暗さのしきい値よりも小さい場合は、その色を完全な白 RGB(255,255,255) に設定し、それ以外の場合は、その色を完全な黒 RGB に設定します ( 0,0,0)。これにより、テキストが黒で残りが白のバイナリ イメージが得られます。

もちろん、重要なのは適切な暗さのしきい値を見つけることです。したがって、平均法で良い結果が得られない場合は、そのステップを増やす別の方法を考え出す必要があるかもしれません. このような方法では、画像を赤、緑、青のプライマリ チャネルに分離し、各チャネルの暗さのしきい値を個別に計算してから、3 つの積極的なしきい値を使用する必要があります。

最後に、単純な平均ではなく、光レベルの分布を計算することをお勧めします。それから、最大値付近の範囲を維持する必要があります。繰り返しますが、各ピクセルを調べて、明るさがバンドに適合する場合は黒に、そうでない場合は白にします。

編集

HSL についてさらに読むには、HSL と HSV の色空間に関する Wiky エントリから始めることをお勧めします。

于 2010-03-19T13:31:27.860 に答える
0

背景の特徴が一般的に文字よりも大きい場合は、背景を推定してから削除することができます。

これを行うには多くの方法がありますが、非常に簡単な方法は、画像に対してメディアンフィルターを実行することです。フィルタウィンドウは、ウィンドウ内のテキストがピクセルの3分の1を超えることはめったにないほど大きく、明るいスポットに収まるウィンドウがいくつかあるほど小さくする必要があります。このフィルターは、テキストなしで背景のみの画像になります。元の画像からそれを差し引くと、グローバルしきい値でセグメント化できる画像が得られるはずです。

輝点がテキストよりもはるかに小さい場合は、逆の操作を行うことに注意してください。光だけが除去されるようにフィルターウィンドウを選択します。

于 2010-03-23T14:17:34.690 に答える
0

最初に試す必要があるのは、照明を変更することです。ドームライトまたは他のライトを使用して、より拡散した均一な光を提供します。

それが不可能な場合は、この質問またはこの質問のいくつかのアイデアを試すことができます。ある種の「適応しきい値」を実装したいとします。これにより、画像の個々の部分にローカルしきい値が適用され、コントラストの変化が目立たなくなります。

ここ で説明されている簡単ですが効果的な方法もあります。アルゴリズムの簡単な概要は次のとおりです。

  1. 画像を NxN 領域または近傍に分割します
  2. 近傍の平均ピクセル値または中央値ピクセル値を計算します
  3. 2) で計算された値、または 2) からの値から C を引いた値 (C は選択された定数) に基づいて、領域のしきい値を設定します。
于 2010-03-26T00:52:41.293 に答える