Matlab学习笔记——双线性插值旋转图像

用普通坐标变换的方法进行旋转图像时,由于取整后的坐标不能与原来一一对应,会出现空像素即黑点,例如

I=imread('cameraman.tif');
x=pi/4;
[m,n]=size(I);
J=zeros(m,n);
for n1=1:m
    for n2=1:n
        u=floor(n1*cos(x)-n2*sin(x))+m;
        v=floor(n1*sin(x)+n2*cos(x))+n;
        J(u,v)=I(n1,n2);
    end
end
J=uint8(J);
imshow(J);

旋转效果如下图
这里写图片描述

可以看到图片上明显的黑点。

为了解决这种问题,可以采取插值法将空像素点补全,常用插值法包括最邻近插值法,双线性插值法,三次内插值法。


双线性插值法实现如下:

img=imread('cameraman.tif');    
[h,w]=size(img);
img2=imrotate(img,45,'bilinear');

th
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值