进行一般的几何变换

用imtransform函数可以完成一般的二维空间变换。该函数接受两个主要变量,即要变换的图像和一个被称为TFORM的空间变换结构,该结构指定变换类型。[大谦MATLAB,dqmatlab点com]

在TFORM结构中指定变换类型。创建TFORM结构有两种方法,即使用maketform函数和cp2tform函数。

在使用maketform函数时,可以指定变换类型。表2-2中按字母先后顺序列出了各种变换类型。

表2-2 各种变换类型

变 换 描 述
'affine' 变换,包括平移、旋转、比例、拉伸和错切等。直线仍为直线,平行线仍为平行线,但矩形可能变成平行四边形
'box' 是affine变换的特例
'composite' 两种或两种以上变换的组合
'custom' 自定义变换
'projective' 投影变换

一旦在TFORM结构中定义了变换,就可以通过调用imtransform函数进行变换操作。

下面的代码用imtransform函数进行跳棋图像的投影变换。

code.matlab
>> I=checkerboard(20,1,1);
>> figure; imshow(I)
>> T=maketform('projective',[1 1; 41 1; 41 41;   1 41],...
[5 5; 40 5; 35 30; -10 30]);
>> R=makeresampler('cubic','circular');
>> K=imtransform(I,T,R,'Size',[100 100],'XYScale',1);
>> figure, imshow(K)

生成图2-5所示的图形,图2-5(a)和图2-5(b)分别为进行投影变换前后的图像。

Document Image Document Image

(a) (b)

图2-5 投影变换前后的图像