ドキュメンテーション

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

psnr

構文

peaksnr = psnr(A,ref)
peaksnr = psnr(A,ref,peakval)
[peaksnr,snr] = psnr(___)

説明

peaksnr = psnr(A,ref) は、ref を参照イメージとして、イメージ A のピーク S/N 比を計算します。Aref はサイズとクラスが同じでなければなりません。

peaksnr = psnr(A,ref,peakval) は、イメージ A のピーク S/N 比を計算するためのピーク信号値として peakval を使用します。

[peaksnr,snr] = psnr(___) は、ピーク S/N 比に加えて、単純な S/N 比 snr も返します。

すべて折りたたむ

イメージを読み取り、ノイズを追加したコピーを作成します。元のイメージは参照イメージです。

ref = imread('pout.tif');
A = imnoise(ref,'salt & pepper', 0.02);

PSNR を計算します。

[peaksnr, snr] = psnr(A, ref);
  
fprintf('\n The Peak-SNR value is %0.4f', peaksnr);
 The Peak-SNR value is 22.6437
fprintf('\n The SNR value is %0.4f \n', snr);
 The SNR value is 15.5524 

入力引数

すべて折りたたむ

解析されるイメージ。N 次元の数値行列として指定します。

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

参照イメージ。N 次元の数値行列として指定します。

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

ピーク信号レベル。任意の数値クラスのスカラーとして指定します。指定しない場合、peakval の既定値は、A および ref のクラスによって決まります。イメージが浮動小数点型である場合、データが [0 1] の範囲であると仮定すると、peakval1 になります。イメージが整数データ型である場合、peakval は、クラスの範囲で許容される最大値になります。uint8 の場合、既定値は 255 です。uint16 または int16 の場合、既定値は 65535 です。

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

出力引数

すべて折りたたむ

デシベル単位のピーク S/N 比。double 型のスカラーとして返されます。例外として、A および ref のクラスが single である場合は、peaksnr のクラスは single になります。

データ型: single | double

デシベル単位の S/N 比。double 型のスカラーとして返されます。例外として、A および ref のクラスが single である場合は、peaksnr のクラスは single になります。

データ型: single | double

アルゴリズム

関数 psnr は、次の方程式を実装して、ピーク S/N 比 (PSNR) を計算します。

PSNR=10log10(peakval2/MSE)

peakval は、ユーザーが指定するか、イメージのデータ型の範囲から取得されます (たとえば、uint8 イメージの場合は 255)。MSE は平均二乗誤差、つまり Aref の間の MSE です。

拡張機能

R2014a で導入

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