Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ガンマ補正

関数 imadjustlowbottom に、hightop にマッピングします。既定の設定では、lowhigh の間の値が bottomtop の間の値に線形にマッピングされます。たとえば、lowhigh の間の中間の値は bottomtop の間の中間の値に対応します。

imadjust は追加の引数として "ガンマ補正" 係数を受け入れます。ガンマの値によっては、入力と出力のイメージのマッピングは非線形になります。たとえば、lowhigh の間の中間値を bottomtop の間の中間値より大きな値にも小さい値にもマッピングできます。

ガンマの値は 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')

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