このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ガンマ補正
強度値をある範囲から別の範囲にマップする場合は、必要に応じてガンマ補正を使用して非線形マッピングを実行できます。ガンマ補正係数は、0 から無限大までの任意の値にできます。
ガンマが 1 より小さいと、マッピングの出力の値は高い (明るい) 方に偏ります。
ガンマが 1 より大きいと、マッピングの出力の値は低い (暗い) 方に偏ります。
ガンマがちょうど 1 のとき、マッピングは線形になります。
図はこの関係を示します。3 つの変換曲線は、ガンマが 1 より小さいとき、1 と等しいとき、1 より大きいときに値がどのようにマッピングされるかを示したものです。各グラフで、"X" 軸は入力イメージの強度値を表し、"Y" 軸は出力イメージの強度値を表します。
3 つの異なるガンマ補正の設定を示すプロット
コントラスト調整時のガンマの指定
この例では、関数 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")