Этот пример показывает, как сравнить качество зашумленного и обесцененного изображения из значения 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)]);