Main Content

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

multissim

画質のマルチスケール構造的類似性 (MS-SSIM) 指数

説明

score = multissim(I,Iref) は、Iref を参照イメージとして使用して、イメージ I の MS-SSIM 指数 score を計算します。

構造的類似性 (SSIM) 指数は、イメージと参照イメージの間の SSIM を定量化することで、感性品質を測定します (ssim を参照)。この関数は、さまざまなスケールの複数バージョンのイメージの SSIM 指数を組み合わせることで構造的類似性指数を計算する、MS-SSIM (マルチスケール SSIM) を計算します。MS-SSIM 指数は SSIM 指数と比べて、表示条件の変動に対してロバストです。

[score,qualitymaps] = multissim(I,Iref) は、I をスケーリングした各バージョンにおける、各ピクセルの局所的な MS-SSIM 指数値も返します。qualitymap 出力は、I をスケーリングした各バージョンのマップをもつ cell 配列です。各品質マップは、I をスケーリングした対応するバージョンと同じサイズになります。

[score,qualitymaps] = multissim(I,Iref,Name,Value) は、1 つ以上の名前と値の引数を使用してオプションを指定します。これらのオプションは計算の特性を制御します。たとえば、'NumScales' 引数を指定して、スケーリングするバージョンの数を指定します。

すべて折りたたむ

イメージをワークスペースに読み込みます。

Iref = imread('pout.tif');

比較のために、ノイズを含むバージョンのイメージを作成します。

I = imnoise(Iref,'salt & pepper',0.05);

元のイメージとノイズを含むイメージを表示します。

figure; 
montage({Iref,I}); 

参照イメージと比較した入力イメージの品質を測定する MS-SSIM 指数を計算します。

score = multissim(I,Iref)
score = single
    0.6745

イメージをワークスペースに読み込みます。

Iref = imread('pout.tif');
I = Iref;

イメージの局所化部分にノイズを追加します。

I(1:100,1:100) = imnoise(Iref(1:100,1:100),'salt & pepper',0.05);

元のイメージとノイズを含むイメージを表示します。

figure; 
montage({Iref,I});

参照として元のイメージを使用して、ノイズを含むイメージの局所的 MS-SSIM 指数マップ qualitymaps を計算します。戻り値 qualitymaps は、イメージをスケーリングした各バージョンの品質マップをもつ cell 配列です。各マップは、イメージをスケーリングした対応するバージョンと同じサイズになります。

[~, qualitymaps] = multissim(I,Iref);
figure
montage(qualitymaps,'Size',[1 5])

イメージをワークスペースに読み込みます。

Iref = imread('pout.tif');

比較のために、ノイズを含むバージョンのイメージを作成します。

I = imnoise(Iref,'salt & pepper',0.05);

元のイメージとノイズを含むバージョンのイメージを表示します。

figure; 
montage({Iref,I});

参照として元のイメージを使用して、ノイズを含むイメージの MS-SSIM 指数を計算します。'ScaleWeights' 引数を使用して、スケーリングした各イメージの局所的 MS-SSIM 指数の計算にどれだけ重み付けをするか指定します。この例では、Wang、Simoncelli、および Bovik による論文で定義された重み値を使用します。

score = multissim(I,Iref,'ScaleWeights',[0.0448,0.2856,0.3001,0.2363,0.1333])
score = single
    0.6793

イメージをワークスペースに読み込みます。

Iref = imread('pout.tif');

品質測定の比較のために、イメージにノイズを加えたバージョンを作成します。

I = imnoise(Iref,'salt & pepper',0.05);

元のイメージとノイズを含むイメージを表示します。

figure; montage({Iref,I});

参照として元のイメージを使用して、ノイズを含むイメージの MS-SSIM 指数を計算します。標準偏差値を指定します。

score = multissim(I,Iref,'Sigma',1)
score = single
    0.6773

入力引数

すべて折りたたむ

入力イメージ。実数、非スパース、M 行 N 列のグレースケール イメージとして指定します。

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

参照イメージ。実数、非スパース、M 行 N 列のグレースケール イメージとして指定します。参照イメージのサイズとクラスは入力イメージと同じでなければなりません。

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

名前と値のペアの引数

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

例: score = multissim(I,Iref,'NumScales',3);

MS-SSIM 指数の計算に使用するスケールの数。'NumScales' と正の整数で構成されるコンマ区切りのペアとして指定します。'NumScales'1 に設定することは、関数 ssim を使用して、名前と値のペアの引数 'Exponents'[1 1 1] に設定することと同等です。入力イメージのサイズによって、スケールの数が制限されます。関数 multissim はイメージのスケーリングを (NumScales - 1) 回行い、スケーリングのたびにイメージを係数 2 でダウンサンプリングします。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

スケール全体における相対値。'ScaleWeights' と正の要素のベクトルから構成されるコンマ区切りのペアとして指定します。ベクトル 'ScaleWeights' の長さはスケールの数によって異なります。各要素が、元のイメージをスケーリングしたバージョンの 1 つに対応しているからです。関数 multissim'ScaleWeights' の値を 1 に正規化します。既定では、スケールの重みは fspecial('gaussian',[1,numScales],1) に等しくなります。既定では、関数 multissim はガウス分布を使用します。人間の視感度は中程度の周波数でピークに達し、周波数が高くても低くても感度が低下するためです。'ScaleWeights' の設定例については、スケールの重みを指定した MS-SSIM の計算を参照してください。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

等方性ガウス関数の標準偏差。'Sigma' と正のスカラーで構成されるコンマ区切りのペアとして指定します。この値は、局所的な統計を推定する目的で、特定のピクセルの周囲の近傍ピクセルに重み付けを指定します。関数 multissim は重み付けを使用して、局所的な統計を推定する際のブロック アーティファクトを防ぎます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

画質の MS-SSIM 指数。範囲 [0, 1] の数値スカラーとして返されます。値 1 は最高品質に対応します。

スケーリングした各バージョンにおける各ピクセルの局所的 MS-SSIM 指数値。数値配列の cell 配列として返されます。各マップの各値は範囲 [0, 1] のスカラー値です。1 は最高品質に対応します。

アルゴリズム

関数 multissim は、double クラスの入力イメージには倍精度演算を使用します。その他すべての型の入力イメージには単精度演算を使用します。

参照

[1] Wang, Z., Simoncelli, E.P., Bovik, A.C. Multiscale Structural Similarity for Image Quality Assessment. In: The Thirty-Seventh Asilomar Conference on Signals, Systems & Computers, 2003, 1398–1402. Pacific Grove, CA, USA: IEEE, 2003. https://doi.org/10.1109/ACSSC.2003.1292216.

R2020a で導入