Main Content

imhistmatchn

参照イメージのヒストグラムと一致させるために N 次元イメージのヒストグラムを調整

説明

J = imhistmatchn(I,ref) は、N 次元グレースケール イメージ I を変換して、ヒストグラムが参照イメージ ref のヒストグラムにほぼ一致するイメージを返します。Iref はいずれもグレースケール イメージでなければなりませんが、データ型、サイズ、次元数を同じにする必要はありません。

J = imhistmatchn(I,ref,nbins) は、指定されたイメージ データ型の適切な範囲内で、nbins 個の等間隔のビンを使用します。返されるイメージがもつ離散レベルは最大で nbins となります。

イメージのデータ型:

  • single または double の場合、ヒストグラムの範囲は [0, 1] です。

  • uint8 の場合、ヒストグラムの範囲は [0, 255] です。

  • uint16 の場合、ヒストグラムの範囲は [0, 65535] です。

  • int16 の場合、ヒストグラムの範囲は [-32768, 32767] です。

[J,hgram] = imhistmatchn(___) は、さらに、マッチングに使用された参照イメージ ref のヒストグラムを hgram に返します。hgram は 1 行 nbins 列のベクトルです。ここで、nbins はヒストグラムのビン数です。

すべて折りたたむ

N 次元グレースケール イメージをワークスペースに読み込みます。また、参照ヒストグラムを提供するグレースケール イメージも読み込みます。

load mri D
load mristack

元のボリュームをスライスとして表示します。

figure
montage(D,'DisplayRange',[])
title('Original 3-D Image')

表示用に参照の形状を変更してグレースケール スライスのスタックにします。

ref = reshape(mristack,[256,256,1,21]);

参照ボリュームをスライスとして表示します。画面に適切に表示するため、imresize を使用して、参照ボリュームを 0.5 の係数で縮小します。

ref_downsized = imresize(ref,0.5);
figure
montage(ref_downsized,'DisplayRange',[])
title('Reference 3-D Image')

D のヒストグラムを原寸大の ref のヒストグラムとマッチングさせます。

Dmatched = imhistmatchn(D,ref);

出力を表示します。出力の明度レベルは、元のイメージよりも参照イメージに一致していることがわかります。

figure
montage(Dmatched,'DisplayRange',[])
title('Histogram Matched MRI')

入力引数

すべて折りたたむ

変換対象の入力イメージ。N 次元グレースケール イメージとして指定します。関数 imhistmatchn では、データ型が double および single であるイメージの値の範囲は [0, 1] でなければなりません。I が [0, 1] の範囲外の値をもつ場合、関数 rescale を使用して、想定される範囲に値を再スケーリングできます。

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

参照ヒストグラムとなるヒストグラムをもつ参照イメージ。グレースケール イメージとして指定します。参照イメージは、出力イメージ J を適合させようとする等間隔の nbins ビン参照ヒストグラムを提供します。

関数 imhistmatchn では、データ型が double および single であるイメージの値の範囲は [0, 1] でなければなりません。

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

参照ヒストグラム内の等間隔のビンの数。正の整数として指定します。nbins は、出力イメージ J 内にある離散データ レベル数の上限も表します。

データ型: double

出力引数

すべて折りたたむ

N 次元グレースケール イメージとして返される出力イメージです。出力イメージはイメージ I から導出され、そのヒストグラムは、nbins 個の等間隔のビンで作成された入力イメージ ref のヒストグラムとほぼ一致します。イメージ J のサイズとデータ型は、入力イメージ I と同じです。入力引数 nbins は、イメージ J に含まれる離散レベル数の上限を表します。

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

参照イメージ ref から導出されるヒストグラム カウントは、1 行 nbins 列のベクトルとして返されます。

データ型: double

バージョン履歴

R2017a で導入