查看“单应性”的源代码
←
单应性
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
'''单应性'''是几何中的一个概念。单应性是一个从[[实射影平面]]到射影平面的可逆变换,直线在该变换下仍映射为直线。具有相同意义的词还包括'''直射变换'''、'''射影变换'''和'''射影性'''等,<ref name="hz">{{cite book | author=Richard Hartley and Andrew Zisserman | title=Multiple View Geometry in computer vision | publisher=Cambridge University Press| year=2003 | pages=32–33 | isbn=0-521-54051-8}}</ref> 不过“直射变换”也在更广义的范围内使用。 形式化地说,'''射影变换'''是一种在[[射影几何]]中使用的变换:它是一对[[透视投影]]的组合。它描述了当观察者视角改变时,被观察物体的感知位置会发生何种变化。射影变换并不保持大小和角度,但会保持[[重合]]关系和[[交比]]——两个在射影几何中很重要的性质。射影变换形成了一个[[群]]。<ref name="hz" /> 对于更广义的[[射影空间]]——具有不同维度或不同的[[域 (数学)|域]]——来说,“单应性”代表[[射影线性变换]](由其相关的向量空间的线性变换导出的可逆变换),而“[[直射变换]]”(意为“把直线映射为直线”)更为广义,它既包含了单应性,也包含了自同构直射变换(由域自同构导出的直射变换),或者是这两者的组合。 == 计算机视觉中的应用 == 在[[计算机视觉]]领域中,空间中同一平面的任意两幅图像通过单应性关联在一起(假定是[[针孔相机]])。比如,一个物体可以通过旋转相机镜头获取两张不同的照片(这两张照片的内容不一定要完全对应,部分对应即可),我们可以把单应性设为一个二维矩阵M,那么照片1乘以M就是照片2。 这有着很多实际应用,比如[[图像校正]]、[[图像对齐]]或两幅图像之间的相机运动计算(旋转和平移)等。一旦旋转和平移从所估计的单应性矩阵中提取出来,那么该信息将可被用来导航或是把3D物体模型插入到图像或视频中,使其可根据正确的透视来渲染,并且成为原始场景的一部分(请见[[增强现实]])。 如果两幅图像之间的相机运动只有旋转而没有平移,那么这两幅图像通过单应性关联在一起(假定是[[针孔相机]])。 === 3D的平面到平面公式 === 我们有两个相机a和b,这两个相机都向某平面中的点<math>P_i</math>看去。 把<math>P_i</math>的投影从b中的<math>{}^bp_i</math>转换到a中的点<math>{}^ap_i</math>: : <math> {}^ap_i = K_a \cdot H_{ba} \cdot K_b^{-1} \cdot {}^bp_i </math> 其中<math>H_{ba}</math>是 : <math>H_{ba} = R - \frac{t n^T}{d} </math> <math>R</math>是[[旋转矩阵]],通过该矩阵''b''关于''a''旋转;''t''是从a到b的平移向量;''n''和''d''分别是平面的法向量和相機到平面的距离。 ''K''<sub>a</sub>和''K''<sub>b</sub>是相机的内参数矩阵。 [[Image:Homography-transl-bold.svg]] 此图显示相机b在距离d处看向平面。 提示:从上图中可知,<math>n^T P_i</math>是向量<math>P_i</math>到<math>n^T</math>的投影,且等于d。因此<math>\frac{t n^T}{d} P_i = t</math>。而且我们有<math>H_{ba} P_i = R P_i - t</math>。 == 数学定义 == [[齐次坐标]]以矩阵乘的方式来表示射影变换,因为使用[[笛卡儿坐标]]的话,矩阵乘无法执行[[透视射影]]所必需的除法运算。换句话说,透视射影在笛卡儿坐标下不是[[线性变换]]。 给定: :<math>p_a = \begin{bmatrix} x_a\\y_a\\1\end{bmatrix}, p^\prime_b = \begin{bmatrix} w^{\prime}x_b\\w^{\prime}y_{b}\\w^{\prime}\end{bmatrix}, \mathbf{H}_{ab} = \begin{bmatrix} h_{11}&h_{12}&h_{13}\\h_{21}&h_{22}&h_{23}\\h_{31}&h_{32}&h_{33} \end{bmatrix} </math> 则: :<math>p^\prime_b = \mathbf{H}_{ab}p_a \, </math> 其中: :<math>\mathbf{H}_{ba} = \mathbf{H}_{ab}^{-1}.</math> 也即: :<math>p_b = p^\prime_b/w^\prime = \begin{bmatrix} x_b\\y_b\\ 1\end{bmatrix}</math> == 仿射单应性 == 当要计算单应性的图像区域比较小,或者图像要求焦距较长时,''仿射单应性''是更合适的模型。仿射单应性是广义单应性中的一种,它的最后一行固定为 : <math>h_{31}=h_{32}=0, \; h_{33}=1.</math> == 参见 == * [[外极几何]] * [[W曲线]] == 参考文献 == {{reflist|2}} {{refbegin}} *{{cite journal | author=O. Chum and T. Pajdla and P. Sturm | title=The Geometric Error for Homographies | journal=Computer Vision and Image Understanding | volume=97 | pages=86–102 | year=2005 | doi=10.1016/j.cviu.2004.03.004 | issue=1}} * Bill Goldman (2005) [https://web.archive.org/web/20100531195340/http://egl.math.umd.edu/documents/homographies.pdf Transformations in Circle Geometry], course notes from [[University of Maryland]]. {{refend}} {{Refimprove|date=2009年12月}} == 外部链接 == *M. Lourakis' [http://www.ics.forth.gr/%7elourakis/homest/ homest] is a [[GPL]] [[C语言|C]]/[[C++]] library for [[robust statistics|robust]], non-linear (based on the [[Levenberg-Marquardt algorithm]]) homography estimation from matched point pairs. homest can estimate fully projective and affine homographies with a variety of objective functions. *[[OpenCV]] is a complete (''open and free'') computer vision software library that has many routines related to homography estimation ([https://web.archive.org/web/20110720065243/http://opencv.willowgarage.com/documentation/camera_calibration_and_3d_reconstruction.html#findhomography cvFindHomography]) and re-projection ([https://web.archive.org/web/20110722044226/http://opencv.willowgarage.com/documentation/operations_on_arrays.html#perspectivetransform cvPerspectiveTransform]). Download and documentation information is on the [https://web.archive.org/web/20091029150308/http://opencv.willowgarage.com/wiki/ OpenCV Wiki]. *[http://www.robots.ox.ac.uk/%7Evgg/presentations/bmvc97/criminispaper/node3.html Computing the plane to plane homography] *[http://www.cse.iitd.ac.in/~suban/vision/geometry/node24.html How to compute a homography] *[http://www.robots.ox.ac.uk/%7Evgg/hzbook/code/ MATLAB Functions for Multiple View Geometry] [[Matlab]] functions for calculating a homography and the [[Fundamental matrix (computer vision)|fundamental matrix]] [[Category:射影几何]] [[Category:计算机视觉中的几何]]
本页使用的模板:
Template:Cite book
(
查看源代码
)
Template:Cite journal
(
查看源代码
)
Template:Refbegin
(
查看源代码
)
Template:Refend
(
查看源代码
)
Template:Refimprove
(
查看源代码
)
Template:Reflist
(
查看源代码
)
返回
单应性
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息