MATLAB几何变换,镜像反转平移操作(详细解释)

在matlab环境下实现常见的图像几何变换(平移、剪切、缩放、旋转、镜像、错切)

括号中仅为参考,可根据自身情况灵活选题。附源代码。

源代码如下:

%定义四个点的坐标

A=[10,20,30];

B=[20,40,20];

C=[30,25,20];

D=[15,25,10];

figure;

plot3([-50,50],[0,0],[0,0],'--r');

grid on;

hold on;

plot3([0,0],[-50,50],[0,0],'--r');

plot3([0,0],[0,0],[-50,50],'--r');

axis('equal');

xlabel('X轴');

ylabel('Y轴');

zlabel('Z轴');

view([1,-1,1]);         %视角方向

simianti(A,B,C,D);         %四面体

%调用平移函数

A1=zqstrans(A,10,10,10);   %后面三个参数代表移动的距离

B1=zqstrans(B,10,10,10);

C1=zqstrans(C,10,10,10);

D1=zqstrans(D,10,10,10);

simianti(A1,B1,C1,D1);%调用函数

%调用镜像函数

A2=re(A,-1,-1,-1);

B2=re(B,-1,-1,-1);

C2=re(C,-1,-1,-1);

D2=re(D,-1,-1,-1);

simianti(A2,B2,C2,D2);%调用函数形成四面体

function n=zqstrans(F,L,M,N)%平移

P=[1 0 0 L;

   0 1 0 M;

   0 0 1 N;

   0 0 0 1];    

%经过对课本第18页内容分析可知,此矩阵是平移所需要的矩阵,见P18

F=[F,1]; %原来要变化的矩阵变化为相应的形式

F=F'; %转置处理

n=P*F; %求得新的矩阵

n=n';%最终的矩阵

end

function q=re(N,m1,m2,m3)

%课本P19介绍了镜像Reflection的矩阵方法,细读便可知

        L=[m1 0 0;

           0 m2 0;

           0 0 m3];%镜像所需矩阵

 N=N';

 q=L*N;

 q=q';

end

function m=simianti(A,B,C,D)  %连线形成四面体

T=[A;B;C;D;B;C;A;D];      %连线顺序

plot3(T(:,1),T(:,2),T(:,3));

%格式 A(:,c)访问A的c的指定列上全部元素构成的子数组;

%此处的冒号:表示全部行;而c可以取任意多元行(或列)数组

%分别代表了x,y,z的坐标

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值