ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

adapthisteq

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

構文

J = adapthisteq(I)
J = adapthisteq(I,param1,val1,param2,val2...)

説明

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

CLAHE は、全体のイメージよりもむしろ "タイル" と呼ばれるイメージ内の小さい領域を処理します。各タイルのコントラストは強調されるため、出力領域のヒストグラムは 'Distribution' パラメーターにより指定されたヒストグラムと自動的に一致します。次に、人工的に作成した境界を削除するため、双一次内挿を使用してその近傍のタイルを組み合わせます。コントラストは、特に均等な領域では、イメージ内に存在するノイズの増幅を避けるために制限されます。

J = adapthisteq(I,param1,val1,param2,val2...) は、次の表に示される追加パラメーターと値の組み合わせを指定します。パラメーター名は省略形でも構いません。大文字と小文字は区別されません。

パラメーター

'NumTiles'

行と列 [M N] でタイル数を指定する正の整数の 2 要素ベクトル。M および N は、2 以上でなければなりません。合計タイル数は、M*N に等しくなります。

既定の設定: [8 8]

'ClipLimit'

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

既定の設定: 0.01

'NBins'

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

既定の設定: 256

'Range'

出力イメージ データの範囲を指定する文字列。

'original' — 範囲は、元のイメージ [min(I(:)) max(I(:))] の範囲に制限されています。

'full' — 出力イメージ クラスの全範囲を使用します。たとえば、uint8 データでは、範囲は [0 255] です。

既定の設定: 'full'

'Distribution'

イメージ タイルの最適なヒストグラムの形状を指定する文字列。

'uniform' — フラットなヒストグラム

'rayleigh' — ベル型ヒストグラム

'exponential' — 曲線ヒストグラム

既定の設定: 'uniform'

'Alpha'

分布パラメーターを指定する非負の実数スカラー。

既定の設定: 0.4

    メモ:   'Distribution''rayleigh' または 'exponential' のいずれかに設定されている場合にのみ使用します。

クラス サポート

グレースケール イメージ I は、uint8uint16int16single または double のいずれかのクラスです。出力イメージ JI と同じクラスです。

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

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

CLAHE をカラー イメージに適用します。

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

% Convert indexed image to true-color (RGB) format
RGB = ind2rgb(X,MAP); 

% Convert image to L*a*b* color space
cform2lab = makecform('srgb2lab');
LAB = applycform(RGB, cform2lab); 

% Scale values to range from 0 to 1
L = LAB(:,:,1)/100; 

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

% Convert back to RGB color space
cform2srgb = makecform('lab2srgb');
J = applycform(LAB, cform2srgb); 

% Display the results
figure, imshow(RGB); 
figure, imshow(J);

詳細

すべて展開する

ヒント

  • '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.

参考

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