affine2d

二维仿射几何变换

描述

一个affine2d对象存储有关2-D仿射几何变换的信息,并启用正向和逆变换。

创建

你可以创建一个affine2d对象使用以下方法:

  • imregtform- 估计使用相似性优化将运动图像映射到固定图像的几何变换。

  • imregcorr.-利用相位相关估计一个将移动图像映射到固定图像的几何变换。

  • FitegeOtrans.- 估计几何变换,即在两个图像之间映射的控制点对。

  • randomAffine2d- 创建随机的2-D仿射变换。

  • affine2d这里描述的功能。

描述

tform = affine2d创建一个affine2d对象,该对象具有与标识转换对应的默认属性设置。

例子

tform = actifine2d(T)设置属性T作为指定的有效仿射变换矩阵。

属性

全部展开

正向二维仿射变换,指定为非奇异的3 × 3数字矩阵。

矩阵T使用“公约”:

[x y 1] = [u v 1] * t

在哪里T的形式:

[a b 0;c d 0;E F 1];

默认值T是身份转换。

数据类型:|

输入和输出点的几何变换的维数,指定为值2

对象的功能

逆几何变换
isRigid 确定变换是否为刚性变换
isSimilarity 确定转换是否是相似性转换
isTranslation 确定转换是否是纯翻译
输出 找出给定输入空间限制的输出空间限制
变换点前沿 应用正几何变换
transformPointsInverse 应用逆几何变换

例子

全部收缩

创建一个affine2d对象,定义绕原点逆时针方向30度旋转。

θ= 30;tform = acfine2d([cosd(θ)信德(θ)0;信德(θ)cosd(θ)0;0 0 1])
tform = affine2d with properties: dimension: 2

对点(10,0)应用正向几何变换。

(x, y) = transformPointsForward (tform 10 0)
x = 8.6603
y = 5

通过绘制原始点(蓝色)和变换点(以红色)进行验证转换。

图(10 0'博', x, y,“罗”)轴([0 12 0 12])轴正方形

读取并显示图像。

我= imread (“kobi.png”);imshow(我)

创建一个affine2d旋转图像的transform对象。的randomAffine2d函数在[35,55]度区间内连续均匀分布中随机选取旋转角度。

tform1 = randomAffine2d (“旋转”,[35 55]);

旋转图像并显示结果。

J = imwarp(我tform1);imshow (J)

转换对象,tform1,将所有图像旋转相同的量。要旋转一个不同的随机选择数量的图像,创建一个新的affine2d转型对象。

tform2 = ronsomaffine2d(“旋转”,[ -  10 10]);J2 = imwarp(i,tform2);imshow(J2)

这个例子展示了如何创建一个可以用来对齐两个图像的几何变换。

创建一个棋盘图像并旋转它以创建一个未对齐的图像。

i =棋盘(40);j = imrootate(i,30);imshowpair(我,j,“蒙太奇”)

在固定图像(棋盘格)和移动图像(旋转后的棋盘格)上定义一些匹配控制点。您可以使用控制点选择工具交互式地定义点。

fixedPoints = [41 41;281 161);movingPoints = [56 175;324 160);

创建一个可用于对齐两个图像的几何变换,返回值为affine2d几何变换对象。

tform = fitgeotrans (movingPoints定点,“NonreflectiveSimilarity”)
tform = affine2d with properties: dimension: 2

使用tform.估计重新采样旋转后的图像,使其与固定的图像配准。假颜色叠加图像中的颜色区域(绿色和品红)表示配准错误。这个错误是由于控制点之间缺乏精确的对应。

tform Jregistered = imwarp (J,“OutputView”imref2d(大小(I)));图imshowpair(我Jregistered)

通过检查平行于x轴的单位向量是如何旋转和拉伸来恢复转换的角度和比例。

u = [0 1];v = [0 0];[x,y] = TransformPointSforward(TForm,U,V);dx = x(2) -  x(1);dy = y(2) -  y(1);角度=(180 / pi)* atan2(dy,dx)
角= 29.7686
标度= 1 /√(dx²+ dy²)
scale = 1.0003.

扩展功能

在R2013A介绍