matlab图像处理一,图像的几何变换:平移、镜像

图像的几何变换都可以用X=imtransform(I, TFORM , method)函数完成
I:要进行几何变换的图片
TFORM :选择变换的类型
method:允许为imtransform函数选择的插值方法,以下三种可填:
‘nearest’ 最近邻插值
‘bilinear’ 双线性插值
‘bicubic’ 双三次插值

TFORM =maketform(transformtype, Matrix );
transformtype:变换的类型,例如常见的‘affine’二维仿射变换(平移、旋转、比例、拉伸等)
Matrix :转换矩阵

  • 图像的平移

首先我们应求出Matrix 矩阵,确定选择变换的类型

例如将图像沿x方向平移x0,y方向平移y0
x’=x+x0;
y’=y+y0;
[x’;y’;1]=[1 0 0;0 1 0;x0 y0 1][x;y;1]
其中Matrix= [1 0 0;0 1 0;x0 y0 1]

x0=300;y0=600;
I=imread('C:\Users\14372\Desktop\Music_pictures\图片\821065.jpg');
A=[1 0 0 ; 0 1 0 ; x0 y0 1 ];

tform =maketform('affine',A);
X=imtransform(I,tform,'XData',[1 size(I,2)],'YData',[1 size(I,1)]);
figure;
subplot(1,2,1);imshow(I);title('原图');
subplot(1,2,2);imshow(X);title('平移后的图像');

在这里插入图片描述

  • 图像的镜像
    以水平镜像为例:
    同样我们应求出Matrix 矩阵,确定选择变换的类型
    x’=-x+width;
    为什么要+width? 先反转后平移,将反转的图像重新移入显示范围
    y’=y;
    所以[x’;y;;1]=[1 0 0;0 1 0;width 0 1] [x;y;1]
    其中Matrix= [1 0 0;0 1 0;width 0 1]
I=imread('C:\Users\14372\Desktop\Music_pictures\图片\821065.jpg');
[height,width,dim]=size(I);
B=[-1 0 0 ; 0 1 0 ; width 0 1 ];
tform=maketform('affine',B);
X=imtransform(I,tform,'XData',[1 size(I,2)],'YData',[1 size(I,1)]);
figure;
subplot(1,2,1);imshow(I);title('原图');
subplot(1,2,2);imshow(X);title('镜像后的图像');

在这里插入图片描述
垂直镜像同理,反转平移的为y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值