Main Content

ガンマ補正

強度値をある範囲から別の範囲にマップする場合は、必要に応じてガンマ補正を使用して非線形マッピングを実行できます。ガンマ補正係数は、0 から無限大までの任意の値にできます。

  • ガンマが 1 より小さいと、マッピングの出力の値は高い (明るい) 方に偏ります。

  • ガンマが 1 より大きいと、マッピングの出力の値は低い (暗い) 方に偏ります。

  • ガンマがちょうど 1 のとき、マッピングは線形になります。

図はこの関係を示します。3 つの変換曲線は、ガンマが 1 より小さいとき、1 と等しいとき、1 より大きいときに値がどのようにマッピングされるかを示したものです。各グラフで、"X" 軸は入力イメージの強度値を表し、"Y" 軸は出力イメージの強度値を表します。

3 つの異なるガンマ補正の設定を示すプロット

Intensity mapping curve is concave down (increasing) for gamma less than 1, a straight line with a positive slope for gamma equal to 1, and concave up (increasing) for gamma greater than 1.

コントラスト調整時のガンマの指定

この例では、関数 imadjust を使用してコントラストを調整するときにガンマを指定する方法を説明します。既定の設定では、imadjust はガンマ値 1 を使用します。これは元のイメージと出力イメージの強度値の間で線形マッピングが使用されることを意味します。ガンマ値が 1 未満の場合、マッピングの出力値は高い (明るい) 方に偏ります。ガンマ値が 1 を超える場合、マッピングの出力値は低い (暗い) 方に偏ります。

イメージをワークスペースに読み取ります。この例では、インデックス付きイメージを読み取り、グレースケール イメージに変換します。

[X,map] = imread("forest.tif");
I = ind2gray(X,map);

1 未満のガンマ値 (0.5) を指定してコントラストを調整します。この例では、imadjust の呼び出しで、入力イメージと出力イメージのデータの範囲が空行列として指定されていることに注目してください。空行列を指定すると、imadjust は既定の範囲の [0,1] を使用します。この例では、どちらの範囲も空のままです。これは、ほかに何もデータを調整せずにガンマ補正が適用されることを意味します。

J = imadjust(I,[],[],0.5);

元のイメージと、コントラストが調整されたイメージを並べて表示します。

imshowpair(I,J,"montage")

Figure contains an axes object. The axes object contains an object of type image.

参考

| |

関連するトピック