主要内容

affine2d

二维仿射几何变换

描述

一个affine2d对象存储关于二维仿射几何变换的信息,并支持正变换和反变换。

创建

您可以创建affine2d对象,使用以下方法:

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

  • imregcorr-估计一个几何变换,映射一个运动图像到固定图像使用相位相关。

  • fitgeotrans-估计一个几何变换,映射对控制点之间的两个图像。

  • randomAffine2d-创建一个随机的二维仿射变换。

  • affine2d这里描述的函数。

描述

tform = affine2d创建一个affine2d对象,其默认属性设置对应于标识转换。

例子

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

属性

全部展开

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

矩阵T使用公约:

[u v 1] = [u v 1] * T

在哪里T的形式:

[0 b;c d 0;e f 1];

默认的T是恒等变换。

数据类型:|

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

对象的功能

逆几何变换
isRigid 确定变换是否是刚性变换
isSimilarity 判断变换是否为相似变换
isTranslation 确定转换是否是纯粹的转换
outputLimits 给定输入空间限制,求输出空间限制
transformPointsForward 应用前向几何变换
transformPointsInverse 应用逆几何变换

例子

全部折叠

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

θ= 30;tform = affine2d ([...cosd(θ)信德(θ)0;...信德(θ)cosd(θ)0;...0 0 1])
tform = affine2d with properties: T: [3x3 double]维数:2

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

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

通过绘制原始点(蓝色)和转换点(红色)来验证转换。

图(10 0“波”, x, y,“罗”)轴([0 12 0 12])广场

图中包含一个轴对象。轴对象包含两个类型为line的对象。

读取并显示图像。

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

图中包含一个轴对象。axis对象包含一个image类型的对象。

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

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

旋转图像并显示结果。

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

图中包含一个轴对象。axis对象包含一个image类型的对象。

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

tform2 = randomAffine2d (“旋转”, -10年[10]);J2 = imwarp(我tform2);imshow (J2)

图中包含一个轴对象。axis对象包含一个image类型的对象。

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

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

I =棋盘(40);J = imrotate(我,30);imshowpair (I, J,“蒙太奇”

图中包含一个轴对象。axis对象包含一个image类型的对象。

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

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

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

tform = fitgeotrans (movingPoints定点,“NonreflectiveSimilarity”
tform = affine2d with properties: T: [3x3 double]维数:2

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

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

图中包含一个轴对象。axis对象包含一个image类型的对象。

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

U = [0 1];V = [0 0];[x, y] = transformPointsForward(tform, u, v); / /修改变量Dx = x(2) - x(1)Dy = y(2) - y(1);角= (180/)* atan2(dy, dx)
角= 29.7686
比例= 1 /√(dx^2 + dy^2)
规模= 1.0003

扩展功能

介绍了R2013a