Main Content

PSNR を使用した画質の比較

この例は、PSNR ブロックを使用して計算された PSNR 値から、ノイズの多いイメージとノイズの除去されたイメージの品質を比較する方法を示しています。

イメージを MATLAB ワークスペースに読み取ります。

I = imread('cameraman.tif');

対応するノイズの多いイメージを MATLAB ワークスペースに読み取ります。

noisyI =  imread('noisyCameraman.tif');

モデル例

Simulink モデルを開きます。モデルは、MATLAB ワークスペースから元のイメージとノイズの多いイメージを読み取り、Median Filter ブロックを使用してノイズの多いイメージのノイズを除去します。

modelname='ex_blkpsnr.slx';
open_system(modelname);

モデルは、元のイメージに対して、ノイズの多いイメージとノイズの除去されたイメージの PSNR 値を計算し、それぞれ psnr_noisypsnr_denoised という名前の変数として出力します。ノイズの除去されたイメージと、計算された PSNR 値は、MATLAB ワークスペースにエクスポートされます。

結果のシミュレーションと表示

モデルをシミュレートします。

out = sim(modelname);

ノイズの多いイメージと、対応する PSNR 値を表示します。

imshow(noisyI,[]);
title(['PSNR = ', num2str(out.psnr_noisy)]);

ノイズの除去されたイメージと、対応する PSNR 値を表示します。ノイズの除去されたイメージは、ノイズの多いイメージよりも知覚的品質が高いため、PSNR 値が比較的高くなります。

imshow(out.denoisedImage,[]);
title(['PSNR = ', num2str(out.psnr_denoised)]);