Сравнение качества изображений с помощью 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)]);