图像几何变换

来源:互联网 发布:java二维数组遍历 编辑:程序博客网 时间:2024/06/05 06:05

参考http://wenku.baidu.com/view/193f8a8fbceb19e8b8f6baf6.html

二维变换矩阵:

 

二维平移 vec(Tx, Ty)

1       0       Tx

0       1       Ty

0       0       1

 

二维旋转:

cos@        -sin@        0

sin@         cos@        0

1       1       1

 

二维放大

Sx     0       0

0       Sy     0

0       0       1

 

绕着顶点旋转(Xr, Yr)

cos@        -sin@        Xr(1-cos@) + YrSin@

sin@         cos@        Yr(1-cos@) – XrSin@

0       0       1

(变换步骤:平移到原点->旋转->平移恢复)

 

绕指定点放大(Xr,Yr)

Sx     0       Xr(1-Sx)

0       Sy     Yr(1-Sy)

0       0       1

(变换步骤:平移到原点->缩放->平移恢复)

 

三维变换矩阵:

平移Vec(Tx, Ty, Tz)

1       0       0       Tx

0       1       0       Ty

0       0       1       Tz

0       0       0       1

 

Z轴旋转

cos@        -sin@        0       0

sin@         cos@        0       0

0       0       1       0

0       0       0       1

 

X轴旋转

1       0       0       0

0       cos@        -sin@        0

0       sin@         cos@        0

0       0       0       1

 

Y轴旋转

cos@        0       sin@         0

0       1       0       0

-sin@        0       cos@        0

0       0       0       1

 

一般绕指定点(Xr, Yr, Zr)的三维旋转变幻步骤

1. 平移到原点

2. 旋转到某一坐标轴X|Y|Z

3. 绕坐标轴旋转

4. 旋转恢得-2的逆矩阵处理

5. 平移恢复-1的逆矩阵处理

三维缩放

Sx     0       0       0

0       Sy     0       0

0       0       Sz     0

0       0       0       1

 

绕任意点(Xr, Yr, Zr)为中心缩放

Sx     0       0       Xr(1-Sx)

0       Sy     0       Yr(1-Sy)

0       0       Sz     Zr(1-Sz)

0       0       0       1

(步骤:平移到原点->缩放->平移恢复)

 

错切,例如把一个矩阵错切为一个平行四边形

x为依赖轴

1       0       0       0

b       1       0       0

c       0       1       0

0       0       0       1

y为依赖轴

1       a       0       0

0       1       0       0

0       c       1       0

0       0       0       1

z轴为依赖轴

1       0       a       0

0       1       b       0

0       0       1       0

0       0       0       1

复合

1       a1     a2     0

b1     1       b2     0

c1     c2     1       0

0       0       0       1

 

matlab中图像变换函数

1、图像的缩放

imresize

函数的语法格式为:

B = imresize(A, m, method) 

imresize    函数的语法格式为:B = imresize(A, m, method) 

2、图像的旋转

imrotate的语法格式为:B = imrotate(A, angle, method) 

0 0