图像处理学习笔记06:图像的插值算法和图像配准

插值算法

输出像素一个一个地映射回输入图像。如果一个输出像素映射到输入图像中的采样栅格的整数坐标处的像素点,此时其灰度值就需要基于整数坐标的灰度值进行推断,这就是插值。

最近邻插值

输出像素的值为输入图像中与其最邻近的采样点的像素值。

双线性插值

是用四个点加权平均得到的灰度值的值,作为输出像素灰度值。

高阶插值

双线性插值的平滑效果会使图像的细节退化,而其斜率的不连续性会导致变换产生不希望的结果。高阶插值常用卷积来实现,输出像素的值为输入图像中距离他最近的4x4领域内采样点像素值的加权平均值。

代码实现
a=imread('rectangle.bmp');
b=imrotate(a,30,'nearest');%最近邻插值
c=imrotate(a,30,'bilinear');%双线性插值
d=imrotate(a,30,'bicubic');%三次插值
figure;
subplot(2,2,1);imshow(a);
subplot(2,2,2);imshow(b);
subplot(2,2,3);imshow(c);
subplot(2,2,4);imshow(d);

在这里插入图片描述
可以较明显地看出,使用最近邻插值法后,纯白图像与黑色背景相接处地锯齿,要比其他两种插值算法的边缘粗糙。

图像配准

简单地说就是按照基准图像和原图像中作对应点,完成四个点后即可实现图像的转换的对应。

clear;
lin=imread('face.jpg');
lbase=imread('2.jpg');
[height,width,dim]=size(lin);
tform=maketform('affine',[1 0 0;0 -1 0;0 height 1;]);
c=imtransform(lin,tform,'nearest');%先把图像竖直镜像,以便观察效果
figure;
subplot(1,2,1);imshow(c);
subplot(1,2,2);imshow(lbase);

在这里插入图片描述

cpselect(c,lbase);%交互式选择基准点

在这里插入图片描述
依次按照基准图像的顺序选择图像对应的点,然后将变量输出到工作空间。键入以下代码

tform=cp2tform(fixedPoints,movingPoints,'affine');%仿射变换模型
iout=imtransform(c,tform);%进行变换,从而实现配准
figure;
subplot(1,2,1);imshow(iout);
subplot(1,2,2);imshow(lbase);

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值