图像变换——等距变换,相似变换,仿射变换,投影变换

本文详细介绍了图像变换中的等距变换、相似变换、仿射变换及投影变换,并通过Matlab程序实现这些变换并展示变换效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.前言:

刚性变换:平移+旋转发生改变,而形状不变。

非刚性变换(non-rigid deformation):斜切、扭曲、透视

2.图像(2D)到图像(2D)的四种变换:等距变换,相似变换,仿射变换,投影变换,对比图表如下:


基于不同变换的结果示意图如下:


程序(Matlab):

%%图像变换
clear;close all;clc
I=imread('cameraman.tif');
figure,
imshow(I),title('原始图像');
d=imdistline;
[w,h]=size(I);
theta=pi/4;%旋转角
t=[200,80];%平移tx,ty
s=0.3;%缩放尺度


% 等距变换=平移变换+旋转变换
H_e=projective2d([cos(theta) sin(theta) t(1);
              -sin(theta)  cos(theta) t(2);
                  0           0       1]');
I_e=imwarp(I,H_e);
subplot(221),imshow(I_e),title('等距变换');
d=imdistline;
%相似变换=等距变换+均匀缩放
H_s=projective2d([s*cos(theta) s*sin(theta) t(1);
                  -s*sin(theta)  s*cos(theta) t(2);
                     0           0       1]');
I_s=imwarp(I,H_s);
subplot(222),imshow(I_s),title('相似变换');
d=imdistline;
%仿射变换=平移变换+非均匀变换
H_a=projective2d([1 0.5 t(1);
                 0 0.5 t(2);
                 0 0  1]');
I_a=imwarp(I,H_a);
subplot(223),imshow(I_a),title('仿射变换');
%投影变换=
H_P=projective2d([0.765,-0.122,-0.0002;
                 -0.174,0.916,9.050e-05;
                  105.018,123.780,1]);
I_P=imwarp(I,H_P);
subplot(224),,imshow(I_P),title('投影变换');

参考链接:

https://blog.youkuaiyun.com/KinboSong/article/details/64923831

https://blog.youkuaiyun.com/u014096352/article/details/53526747

http://blog.sina.com.cn/s/blog_7ceb2d560102w5se.html

https://blog.youkuaiyun.com/u012590570/article/details/51355600



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值