ドキュメンテーション

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

ssim

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

構文

ssimval = ssim(A,ref)
[ssimval,ssimmap] = ssim(A,ref)
___ = ssim(__,Name,Value,...)

説明

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

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

___ = ssim(__,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);

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

入力引数

すべて折りたたむ

画質を測定するイメージ。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 のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例:

すべて折りたたむ

入力イメージのダイナミック レンジ。正のスカラーとして指定します。既定では、この値は、入力イメージ A のクラスに基づいて、diff(getrangefromclass(A)) として選択されます。A のクラスが single または double である場合、この値は既定で 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

輝度、コントラスト、構造の各項の正則化定数。非負の実数の 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 (指数の既定値) かつ C3 = C2/2 (C3 の既定の選択肢) である場合、指数は次のように簡易化されます。

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

参照

[1] Wang Zhou, Bovik, Alan C., Sheikh, Hamid R., and Simoncelli, Eero P.Image Qualifty Assessment: From Error Visibility to Structural Similarity. IEEE Transactions on Image Processing, Volume 13, Issue 4, pp. 600–612, April 2004

R2014a で導入

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