このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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_noisy
、psnr_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)]);