邻近内插和PSNR

本文介绍了一种图像处理流程,包括使用3*3平均窗口进行滤波、图像尺寸缩放及通过邻近内插与双线性内插放大图像,并对比原始图像计算了两种放大方法的PSNR值。

将一幅512*512的原始灰度图像,采用3*3的平均窗口对它作滤波运算(原图像外围的像素的灰度值视为128);对滤波后图像隔行、隔列丢弃一半像素形成一幅256*256的小图像;对此小图像采用邻近内插、双线性内插的方法将它放大为512*512的大图像。对照原图像,计算两种放大图形各自的psnr值

建立m文件

function im_sub=Test(im)
im=double(im);
w=fspecial('average',[3,3]);
im=imfilter(im,w,128,'same');%原图像外围的像素的灰度值视为128
im_sub=im(1:2:end,1:2:end);

end

function psnr=PSNR(im0,im1)
im0=double(im0);
im1=double(im1);
[M,N]=size(im0);
mse=sum((im0(:)-im1(:)).^2)/(M*N);
psnr=10*log10(255^2/mse);

end

建立脚本

%Test41.m
clear;clc;
filename='elaine512.tif';
im=imread(filename);
im_sub=Test(im);
im1=imresize(im_sub,2,'nearest');
im2=imresize(im_sub,2,'bilinear');
psnr1=PSNR(im,im1);
psnr2=PSNR(im,im2);
fprintf('PSNR1=%.2f dB\n',psnr1);
fprintf('PSNR2=%.2f dB\n',psnr2);
figure;
subplot(131);
imshow(im);
xlabel('Orginal Image');
subplot(132);
imshow(mat2gray(im1));
xlabel('Nearst');
subplot(133);
imshow(mat2gray(im2));

xlabel('Bilinear');

运行得出结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值