新的几何变换矩阵在R2022b公约
R2022b版本中,图像处理工具箱包括一些新的几何变换对象,如
rigidtform2d
,
affinetform3d
等,使用
自左乘
矩阵的惯例,而不是
自右乘
公约。其他几个相关工具箱函数,如
imregtform
,现在优先使用这些新的对象。有功能的计算机视觉工具箱和激光雷达的工具箱,现在使用自左乘公约和新对象。这些变化也与机器人系统改进设计一致性工具箱和导航工具。
文档中的关键信息,请参阅:
在今天的文章中,我将解释如何以及为什么这一切都是为用户和差异。
仿射变换矩阵
问题定义仿射矩阵和投影转换,包括翻译、旋转,刚性,相似变换。我将重点在以下讨论仿射变换,但相同的概念适用于射影变换。
对于两个维度,一个是一个仿射变换矩阵
3 \乘以3美元
矩阵映射二维点,
(u, v)美元
,使用矩阵乘法,像这样:
仿射变换时上面写成的,第三行
一个
总是
[ 0 0 1 ] " style="vertical-align:-5px">
。因为矩阵出现在向量相乘,我称之为
自左乘公约
。
有另一种方式写这个操作。你可以转置一切,像这样:
这种形式的矩阵向量后出现,所以我称之为
自右乘公约
。请注意,
一个
和
B
相关矩阵转换:
$ A = B ^ {T} $
,
$ B = ^ {T} $
。
竞争的约定
第一个图像处理工具箱版本,包括通用的几何图像转换功能是发达国家从1999年到2001年。当时,许多最有用的出版物讨论图像的几何变换是计算机图形学中文学。两个矩阵的约定,自左乘自右乘,都在使用。约定你学会了依靠你读的书籍和论文,或您使用的图形软件框架,如OpenGL或者举。
我当时的影响的书
数字图像扭曲
乔治·Wolberg,自右乘约定使用。我也认为自右乘公约与通常的MATLAB大会代表工作
P
二维点作为
P \ * 2美元
矩阵。
![digital-image-warping.jpg](http://www.tatmou.com/blogs/steve/files/transposed_geometric_transformation_matrices_1.png)
![仿射转换- 3 - 3. - png](http://www.tatmou.com/blogs/steve/files/transposed_geometric_transformation_matrices_2.png)
由于这些影响,最初的工具箱函数,
maketform
和
imtransform
,以及下一代的功能,
imwarp
和
affine2
d和其他人来说,使用了自右乘公约。
决定改变公约
自2001年以来,自左乘公约已成为自右乘更广泛使用的约定。最受欢迎的信息来源,如
维基百科
,使用自左乘公约。因此,我们使用自右乘公约是迷惑更多的人。我们可以看到在许多文章在这种混淆
MATLAB的答案
,以及技术支持请求。金宝app开发人员在计算机视觉图像处理工具箱,工具箱团队得出的结论是,我们应该做点什么,即使它可能是困难和耗时。设计工作开始于2021年的春天。最后的推动,今年的冬天和春天,是一群努力(见下文)涉及开发商、作家,在多个团队和质量工程师。
新的几何变换类型
图像处理工具箱的R2022b版本介绍这些新类型:
- projtform2d——二维射影几何变换
- affinetform2d——二维仿射几何变换
- simtform2d——二维相似几何变换
- rigidtform2d——二维刚性几何变换
- transltform2d翻译——二维几何变换
- affinetform3d——三维仿射几何变换
- simtform3d——三维相似几何变换
- rigidtform3d——三维刚性几何变换
- transltform3d翻译- 3 d几何变换
我们鼓励每个人都开始用这些代替之前的类型:
projective2d
,
affine2d
,
rigid2d
,
affine3d
,
rigid3d
。
使用新的类型
当你做一个新的转换类型的变换矩阵,使用自左乘的形式。自左乘一个仿射矩阵的形式,最后一行
[ 0 0 1 ] " style="vertical-align:-5px">
。
= (1.5 0 10;0.1 - 2 15;0 0 1]
tform = affinetform2d (A)
tform.A
为了缓解过渡,新类型的目的是进行互操作,尽可能为旧类型编写的代码。例如,让我们看一看旧的功能,
affine2d
:
T =“
tform_affine2d = affine2d (T)
tform_affine2d.T
旧类型的
T
财产是自右乘变换矩阵的形式。新类型的
一个
房地产是自左乘变换矩阵的形式。
尽管它是隐藏的,也有一个新的类型
T
属性,该属性包含自右乘变换矩阵的形式。
tform
tform.A
tform.T
这个隐藏属性,所以,如果你有得到或设置的代码
T
属性在旧类型,您将能够使用新的类型不改变代码。设置或获取的
T
属性将自动设置或获得相应的
一个
财产。
tform.T (3,1) = 100;
tform.T
tform.A
翻译、刚性和相似变换
除了一般的仿射变换,新类型包括更专门的转换
翻译
,
刚性
,
相似
。您可以使用参数,创建这些比仿射变换矩阵可能会更直观。例如,一个
刚性
结合旋转和转换翻译,所以您可以创建一个
rigidtform2d
对象通过指定一个旋转角度(度)和向量直接翻译。
r_tform = rigidtform2d(45岁[0.2 - 0.3])
如果你要求
R
(旋转矩阵)
一个
(仿射变换矩阵),它是直接从旋转和转换参数计算。
r_tform.R
r_tform.A
直接你可以改变这些矩阵,但只有在结果将是一个有效的刚性变换。下面的任务,只有改变水平翻译抵消,是允许的,因为结果仍然是一个刚性变换:
r_tform.A (1、3) = 0.25
但是如果你试图改变左上角
2 \ * 2美元
子矩阵,这样不是一个旋转矩阵,你会得到一个错误:
![rigid-tform-error.png](http://www.tatmou.com/blogs/steve/files/transposed_geometric_transformation_matrices_3.png)
转变点和图像
转变点和图像作品以同样的方式与旧的对象。
(x, y) = transformPointsForward (r_tform、2、3)
x = -0.4571
y = 3.8355
(u, v) = transformPointsInverse (r_tform, x, y)
u = 2
v = 3
下面的代码生成100对随机点,变换使用
r_tform
从上面,然后情节线段从原始分转化的。
xy =兰德(100 2)- 0.5;
紫外线= transformPointsForward (r_tform, xy);
clf
持有在
为k = 1:尺寸(xy, 1)
情节([xy (k, 1)紫外线(k, 1)]、[xy (k, 2)紫外线(k, 2)))
结束
持有从
轴平等的
和
imwarp
解释新的转换类型使用相同的语法。
一个= imread (“peppers.png”);
B = imwarp (r_tform);
imshow (B)
相关的工具箱
- 图像处理工具箱
- 计算机视觉的工具箱
- 自动驾驶的工具箱
- 激光雷达的工具箱
这里有一个抽样:
单眼视觉同步定位和映射
(vSLAM)
![monocular-vision-example.png](http://www.tatmou.com/blogs/steve/files/transposed_geometric_transformation_matrices_6.png)
![build-map-lidar.png](http://www.tatmou.com/blogs/steve/files/transposed_geometric_transformation_matrices_7.png)
![ground-truth-and-estimated-maps.png](http://www.tatmou.com/blogs/steve/files/transposed_geometric_transformation_matrices_8.png)
![register-3d-images.png](http://www.tatmou.com/blogs/steve/files/transposed_geometric_transformation_matrices_9.png)
学分
花了一个大集团的努力,今年早些时候,图像处理工具箱中的所有变化,计算机视觉工具箱,工具箱自动驾驶,激光雷达的工具箱。图像处理工具箱的设计和实现,我在工作,是相对简单的,但计算机视觉工具箱的变化是广泛的和非常复杂。要感谢科里,Paola,实现和设计工作。(科里,很抱歉,这个项目吞噬整个实习!我很高兴你现在已经正式加入开发团队。)Witek跳在帮助修改计算机视觉工具箱的设计将过去几年的经验教训。(Witek合著者即将到来的2023年版的
机器人、视觉和控制:基本算法在MATLAB
使用自左乘公约)。从激光雷达工具箱团队,Kritika帮助设计和实现,Hrishikesh更新一些例子。
亚历克斯,感谢我的图像处理工具箱设计伙伴;你的经验是无价的。Vignesh,谢谢你通知我关于代码生成。阿施施,谢谢你在最后一分钟拯救我关键的实现有所帮助。杰西卡是一个很棒的工作丰富的文档和示例更新所有四个产品。下载188bet金宝搏和Abhi帮助阶段和资格最后multiproduct集成在一个严格的最后期限。
感谢所有!
댓글
댓글을남기려면링크를클릭하여MathWorks계정에로그인하거나계정을새로만드십시오。