How should the output look like of the MSE of a median filtered image?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
wanted to calculate both PSNR and the MSE between the reference image and the filtered (median) image, so I used this code. However, I am not sure if the output looks correct, please correct me if I am wrong.
0 comentarios
Respuestas (2)
DGM
el 3 de Dic. de 2023
Editada: DGM
el 3 de Dic. de 2023
The error image is as expected for the thing you did, but I don't know why you're doing it. You're comparing the filtered image with the unfiltered image. The unfiltered image in this case happens to be the original cameraman image without any added noise, so you're not observing any sort of noise removal. You're just observing the degree to which the clean image is altered. It should be expected that narrow details will be altered by the use of an indiscriminate median filter, hence the error being present in the narrow highlight regions.
Try increasing the size of the window used by the median filter and observe how it changes.
ref = imread('cameraman.tif');
A = medfilt2(ref,[11 11],'symmetric'); % see what happens
imshow([ref A])
sqim = (double(ref) - double(A)) .^ 2;
imshow(sqim, []);
mse = mean(sqim(:))
% presumes image is uint8
% use 255 instead of 256 if you want to match psnr()
PSNR = 10 * log10(255^2 / mse)
Alternatively, try adding some noise to a copy of the image and see how it changes.
ref = imread('cameraman.tif');
noisy = imnoise(ref,'salt & pepper',0.1);
A = medfilt2(noisy,[3 3],'symmetric');
imshow([noisy A])
sqim = (double(ref) - double(A)) .^ 2;
imshow(sqim, []);
0 comentarios
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!