% 将一幅512×512的原始灰度图像,采用3×3的平均窗口对它作滤波运算(原图像外围的像素的灰度值视为128);
% 对滤波后图像隔行、隔列丢弃一半像素形成一幅256×256的小图像;对此小图像分别采用最邻近内插、双线性内插
% (不用imresize,要自己定义函数)的方法将它放大为512×512的大图像。对照原图像,计算两种放大图像各自的PSNR。
% 滤波器构造函数fspecial(·)
% 滤波函数imfilter (·)
% 图像放大函数imresize (·)
clear;clc
%
im = double(imread('2-lena.tif'));
w = fspecial('average',[3 3]);
im_lp = imfilter(im,w,128);
im_sub = im_lp(1:2:end,1:2:end);
%
im1 = ex2_nearest(im_sub);
im2 = ex2_bilinear(im_sub);
%
psnr1 = PSNR(im,im1);
psnr2 = PSNR(im,im2);
%
subplot(121)
imshow(mat2gray(im1))
xname = sprintf('Nearest, PSNR = %.2f dB\n',psnr1);
xlabel(xname)
subplot(122)
imshow(mat2gray(im2))
xname = sprintf('Bilinear, PSNR = %.2f dB\n',psnr2);
xlabel(xname)
%ex2_bilinear
function im1 = ex2_bilinear(im_sub)
%
[M,N] = size(im_sub);
im1 = zeros(2*M,2*N);
im1(1:2:end,1:2:end) = im_sub;
数字图像处理实验二
最新推荐文章于 2025-03-30 16:32:36 发布