0

サイズ64*64ピクセル(M * N = 4096)の特定の3ビット画像(L = 8)の強度分布が次のようになっているとします。ヒストグラム均等化変換関数を取得して、画像の均等化ヒストグラムを計算するにはどうすればよいですか?

Rk     nk
0      800
1      520
2      970 
3      660
4      330
5      450
6      260
7      106
4

1 に答える 1

6

「Histogram Equalization は、変換関数を自動的に取得するプロセスです。したがって、変換関数の形状と性質について心配する必要はありません。」

したがって、ヒストグラム均等化では、変換関数は累積頻度アプローチを使用して計算され、このプロセスは自動です。画像のヒストグラムから累積ヒストグラム を決定しc、8 ビットの範囲を占めるように値を再スケーリングします。このようにcして、等化を実行するために後で画像に適用できるルックアップ テーブルになります。

rk      nk       c        sk = c/MN       (L-1)sk     rounded value
0       800      800      0.195            1.365      1
1       520      1320     0.322            2.254      2
2       970      2290     0.559            3.913      4
3       660      2950     0.720            5.04       5 
4       330      3280     0.801            5.601      6
5       450      3730     0.911            6.377      6
6       260      3990     0.974            6.818      7
7       106      4096     1.000            7.0        7

したがって、均等化されたヒストグラムは

rk           nk
0            0
1            800
2            520     
3            0
4            970
5            660
6            330 + 450 = 780
7            260 + 106 = 366 

等化のアルゴリズムは次のように与えられます。

Compute a scaling factor, α= 255 / number of pixels
Calculate histogram of the image
Create a look up table c with
    c[0] =  α * histogram[0]
for all remaining grey levels, i, do
    c[i] = c[i-1] + α * histogram[i]
end for
for all pixel coordinates, x and  y, do
    g(x, y) = c[f(x, y)]
end for

しかし、ヒストグラムの均等化には問題があります。これは主に、パラメータを設定する必要のない完全に自動化された手法であるためです。場合によっては、画像を解釈する能力が劇的に向上することがあります。ただし、特定の画像に対してイコライゼーションがどの程度有益であるかを予測することは困難です。実際、それはまったく役に立たないかもしれません。これは、コントラストの改善が、知覚的にではなく、統計的に最適であるためです。ヒストグラムが狭く、グレーレベルが比較的少ない画像では、ヒストグラムの均等化によるコントラストの大幅な増加により、知覚される画質が低下するという悪影響が生じる可能性があります。特に、サンプリングまたは量子化アーティファクトと画像ノイズがより顕著になる場合があります。

変換 (マッピング) 関数を自動的に取得する代替手段は、ヒストグラム仕様です。. ヒストグラムの指定では、平坦なヒストグラムを要求する代わりに、特定の形状を明示的に指定します。関連する画像のセットが同じヒストグラムを持つことが望ましい場合、おそらく特定の操作ですべての画像に対して同じ結果が得られるようにするために、これを実行したいと思うかもしれません。ヒストグラムの仕様は、2 段階のプロセスとして視覚化できます。まず、イコライゼーションによって入力画像を平坦なヒストグラムを持つ一時画像に変換します。次に、この均等化された一時的な画像を、目的のヒストグラムを持つ出力画像に変換します。第 2 段階のマッピング関数は簡単に取得できます。累積ヒストグラムの再スケーリングされたバージョンを使用して、任意の形状のヒストグラムを平坦なヒストグラムに変換できるため、

C および C++ コードを使用したヒストグラム均等化およびマッピング関数の詳細については、 https://programming-technique.blogspot.com/2013/01/histogram-equalization-using-c-image.htmlを参照してください。

于 2013-03-13T11:34:46.550 に答える