MATLAB实验三(4)
发布时间:2021-06-05
发布时间:2021-06-05
Matlab实验,图形处理相关,包括灰度线性非线性变换,dct图像压缩,均值中值滤波
imshow(im);title('原图');
subplot(234);
imshow(im_4);title('1/4 DCT')
subplot(235);
imshow(im_8);title('1/8 DCT');
subplot(236);
imshow(im_16);title('1/16 DCT');
pnsr_4 = pnsr(im_4, im)
pnsr_8 = pnsr(im_8, im)
pnsr_16 = pnsr(im_16, im)
[pnsr.m]
function pnsr = pnsr( I, P )
%计算原始图像I和处理后图像P之间的峰值信噪比
if size(I) ~= size(P)
error('图像大小必须相同');
elseif length(size(I)) == 3
%彩色图像
sizep = size(I);
mse = 0;lenx = sizep(1);leny = sizep(2);
for z = 1:3
for x = 1:lenx
for y = 1:leny
mse = mse + abs(I(x, y, z)^2 - P(x, y, z)^2);
end
end
mse = mse / (lenx * leny);
end
mse = mse/3;