メインコンテンツ

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')

Figure contains an axes object. The hidden axes object with title Original 3-D Image contains an object of type 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')

Figure contains an axes object. The hidden axes object with title Reference 3-D Image contains an object of type image.

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

Dmatched = imhistmatchn(D,ref);

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

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

Figure contains an axes object. The hidden axes object with title Histogram Matched MRI contains an object of type image.

入力引数

すべて折りたたむ

変換対象の入力イメージ。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 で導入