ドキュメンテーション

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

ssim

イメージ画質を測定するための構造的類似性 (SSIM) 指数

説明

ssimval = ssim(A,ref) は、ref を参照イメージとして使用して、イメージ A の構造的類似性 (SSIM) 指数値を計算します。

[ssimval,ssimmap] = ssim(A,ref) は、A 内の各ピクセルの局所的な SSIM 値も返します。

___ = ssim(A,ref,Name,Value) は、計算の特性を制御する名前と値のペアを使用して、SSIM を計算します。

すべて折りたたむ

イメージをワークスペースに読み取ります。別のバージョンのイメージを作成し、ブレ フィルターを適用します。両方のイメージを表示します。

ref = imread('pout.tif');
H = fspecial('Gaussian',[11 11],1.5);
A = imfilter(ref,H,'replicate');

subplot(1,2,1); imshow(ref); title('Reference Image');
subplot(1,2,2); imshow(A);   title('Blurred Image');

イメージのグローバル SSIM 値と、各ピクセルの局所的 SSIM 値を計算します。グローバル SSIM 値を返して局所的 SSIM 値のマップを表示します。

[ssimval, ssimmap] = ssim(A,ref);
  
fprintf('The SSIM value is %0.4f.\n',ssimval);
The SSIM value is 0.9407.
  
figure, imshow(ssimmap,[]);
title(sprintf('ssim Index Map - Mean ssim Value is %0.4f',ssimval));

入力引数

すべて折りたたむ

画質を測定するイメージ。2 次元グレースケール イメージまたは 3 次元ボリューム イメージとして指定します。サイズとクラスは ref と同じでなければなりません。

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

画質測定の基準とする参照イメージ。2 次元グレースケール イメージまたは 3 次元ボリューム イメージとして指定します。サイズとクラスは A と同じでなければなりません。

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

名前と値のペアの引数

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

例: ssim(A,ref,'DynamicRange',100)

入力イメージのダイナミック レンジ。正のスカラーとして指定します。DynamicRange の既定値は、イメージ A のデータ型によって異なり、diff(getrangefromclass(A)) で計算されます。たとえば、既定のダイナミック レンジは、データ型 uint8 のイメージに対して 255 です。データ型が double または single のイメージで、ピクセル値が [0, 1] の範囲であるイメージに対して既定値は 1 です。

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

輝度、コントラスト、構造の各項の指数。非負の実数の 3 要素ベクトル [alpha beta gamma] として指定します。

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

等方性ガウス関数の標準偏差。正のスカラーとして指定します。この値は、局所的な統計を推定する目的で、特定のピクセルの周囲の近傍ピクセルに重み付けするために使用します。この重み付けは、局所的な統計を推定する際のブロック歪みを防ぐために使用されます。

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

輝度、コントラスト、構造の各項の正則化定数。[c1 c2 c3] 形式で非負の実数の 3 要素ベクトルとして指定します。関数 ssim は、これらの正則化定数を使用して、局所的な平均または標準偏差がゼロに近いイメージ領域が不安定になるのを防止します。したがって、これらの定数にはゼロ以外の小さい値を使用してください。

既定では以下のようになります。

  • C1 = (0.01*L).^2 (L は指定された DynamicRange 値)

  • C2 = (0.03*L).^2 (L は指定された DynamicRange 値)

  • C3 = C2/2

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

出力引数

すべて折りたたむ

構造的類似性 (SSIM) 指数。double のスカラーとして返されます。例外として、Aref のクラスが single である場合は、ssimval のクラスは single となります。

構造的類似性 (SSIM) 指数の局所的な値。double クラスの数値配列として返されます。例外として、Aref のクラスが single の場合は、ssimmap のクラスは single となります。ssimmap は、入力イメージ A と同じサイズの配列です。

詳細

すべて折りたたむ

構造的類似性指数

イメージの 3 つの特徴である輝度、コントラスト、構造の視覚的影響を評価するイメージ画質メトリクスです。

アルゴリズム

構造的類似性 (SSIM) 指数画質評価インデックスは、3 つの項、つまり輝度項、コントラスト項および構造項の計算に基づいています。全体的なインデックスは、3 つの項を組み合わせて乗算したものです。

SSIM(x,y)=[l(x,y)]α[c(x,y)]β[s(x,y)]γ

ここで、

l(x,y)=2μxμy+C1μx2+μy2+C1,c(x,y)=2σxσy+C2σx2+σy2+C2,s(x,y)=σxy+C3σxσy+C3

ここで、μx、μy、σx、σy および σxy は、イメージ x, y の局所的な平均、標準偏差、相互共分散です。α = β = γ = 1 (Exponents の既定値) かつ C3 = C2/2 (C3 の既定の選択肢) である場合、指数は次のように簡易化されます。

SSIM(x,y)=(2μxμy+C1)(2σxy+C2)(μx2+μy2+C1)(σx2+σy2+C2)

参照

[1] Zhou, W., A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli. "Image Qualifty Assessment: From Error Visibility to Structural Similarity." IEEE Transactions on Image Processing. Vol. 13, Issue 4, April 2004, pp. 600–612.

R2014a で導入