ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

adapthisteq

コントラストに制限を付けた適応ヒストグラム均等化を実行 (CLAHE)

構文

J = adapthisteq(I)
J = adapthisteq(I,Name,Value,...)

説明

J = adapthisteq(I) は、コントラストに制限を付けた適応ヒストグラム均等化 (CLAHE) [1] を使用して値を変換することにより、グレースケール イメージ I のコントラストを強調します。

J = adapthisteq(I,Name,Value,...) は、任意の追加パラメーターと値のペアを指定します。パラメーター名は省略形でも構いません。大文字と小文字は区別されません。

すべて折りたたむ

コントラストに制限を付けた適応ヒストグラム均等化 (CLAHE) をイメージに適用し、結果を表示します。

I = imread('tire.tif');
A = adapthisteq(I,'clipLimit',0.02,'Distribution','rayleigh');
figure, imshow(I);

figure, imshow(A);

カラー イメージをワークスペースに読み取ります。

[X, MAP] = imread('shadow.tif');

インデックス付きイメージをトゥルーカラー (RGB) イメージに変換します。

RGB = ind2rgb(X,MAP);

RGB イメージを L*a*b* 色空間に変換します。

LAB = rgb2lab(RGB);

関数 adapthisteq で必要とされる [0 1] の範囲に値をスケーリングします。

L = LAB(:,:,1)/100;

CLAHE を実行します。結果の乗算により、L*a*b* 色空間で使用される範囲に戻します。

LAB(:,:,1) = adapthisteq(L,'NumTiles',...
                         [8 8],'ClipLimit',0.005)*100;

結果のイメージを RGB 色空間に再変換します。

J = lab2rgb(LAB);

元のイメージと結果を表示します。

figure, imshow(RGB); 

figure, imshow(J);

入力引数

すべて折りたたむ

入力強度イメージ。数値の 2 次元配列として指定します。

データ型: single | double | int16 | uint8 | uint16

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: 'NumTiles',[8 16] は、イメージを 8 行 16 列のタイルに分割します。

すべて折りたたむ

タイル数。正の整数の 2 要素ベクトルとして指定します。元のイメージを MN 列のタイルに分割する場合、'NumTiles' の値を [M N] にします。M および N は、2 以上でなければなりません。合計タイル数は、M*N に等しくなります。

データ型: double

コントラスト強調の制限。[0 1] の範囲の実数スカラーとして指定します。制限を大きくすると、コントラストが高くなります。

データ型: double

コントラストを強調する変換を作成するのに使用されるヒストグラムのビン数。正の整数スカラーとして指定します。値が大きいと、処理速度は低下しますが、ダイナミック レンジが広くなります。

データ型: double

出力イメージ データの範囲。次のいずれかの値に指定します。

説明
'full'範囲を [min(I(:)) max(I(:))] に制限します。
'original'出力クラスの全範囲を使用します (たとえば、uint8 の場合は [0 255])。

最適なヒストグラムの形状。次のいずれかの値に指定します。

説明
'uniform'一様なヒストグラムを作成します。
'rayleigh'ベル型ヒストグラムを作成します。
'exponential'曲線ヒストグラムを作成します。

分布パラメーター。非負の実数スカラー値として指定します。'Alpha' は、'Distribution''rayleigh' または 'exponential' に設定される場合にのみ使用します。

データ型: double

出力引数

すべて折りたたむ

出力強度イメージ。入力イメージ I と同じクラスの 2 次元配列として返されます。

ヒント

  • 'NumTiles' は、adapthisteq がイメージを分割する四角形のコンテキスト領域 (タイル) の数を指定します。adapthisteq は、これらの個々の領域のそれぞれについて、コントラスト変換関数を計算します。必要なタイル数は、入力イメージのタイプによって異なります。実際に試してから決定するのが一番良いでしょう。

  • 'ClipLimit' は、特に均等領域でイメージが飽和されすぎるのを防ぐコントラストの倍数です。これらの面積は、多くのピクセルが同じグレー レベルの範囲内にあるため、特定のイメージ タイルのヒストグラムで高ピークであることが特徴です。制限がないと、場合によっては、適応ヒストグラム均等化の技術を使用しても元のイメージより劣ることになります。

  • 'Distribution' は、コントラスト変換関数を作成するベースとして adapthisteq が使用する分布です。選択した分布は、入力イメージのタイプによって異なります。たとえば、レイリー分布を使用すれば、水中のイメージがより自然に見えます。

参照

[1] Zuiderveld, Karel. “Contrast Limited Adaptive Histograph Equalization.” Graphic Gems IV. San Diego: Academic Press Professional, 1994. 474–485.

参考

R2006a より前に導入

この情報は役に立ちましたか?