Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

psnr

説明

peaksnr = psnr(A,ref) は、イメージ ref を参照イメージとして使用して、イメージ A のピーク S/N 比 (PSNR) を計算します。

peaksnr = psnr(A,ref,peakval) は、ピーク信号値 peakval を使用して、イメージ A の PSNR を計算します。

[peaksnr,snr] = psnr(___) は、単純な 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 

入力引数

すべて折りたたむ

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

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

参照イメージ。サイズとデータ型がイメージ A と同じ数値配列として指定します。

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

ピーク信号レベル。非負の数値として指定します。指定しない場合、peakval の既定値は、A および ref のクラスによって決まります。

  • イメージのデータ型が double または single の場合、psnr はイメージ データが範囲 [0, 1] にあると想定します。peakval の既定値は 1 です。

  • イメージが整数データ型である場合、peakval の既定値は、クラスの範囲で許容される最大値になります。uint8 データの場合、peakval の既定値は 255 です。uint16 または int16 の場合、既定値は 65535 です。

出力引数

すべて折りたたむ

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

データ型: single | double

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

データ型: single | double

アルゴリズム

関数 psnr は次の方程式を実装して PSNR を計算します。

PSNR=10log10(peakval2/MSE)

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

拡張機能

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

R2014a で導入