And*_*ock 10 transform projection matrix linear-algebra perspective
我知道将一个正方形转换为一个正方形是一个线性变换,并且可以使用投影矩阵来完成,但我在确定如何构造矩阵时遇到了一些麻烦.
使用投影矩阵进行平移,缩放,旋转和剪切是很简单的.是否有一个简单的投影矩阵将一个方形转换为一个梯形?
Ale*_*son 11
a,b,c,d是2D正方形的四个角.
a,b,c,d以齐次坐标表示,因此它们是3×1矩阵.
alpha,beta,gamma,delta是2D梯形的四个角.
alpha,beta,gamma,delta以齐次坐标表示,因此它们是3x1矩阵.
H是你正在寻找的3x3矩阵,它也被称为单应性
h1 h2 h3
H = h4 h5 h6
h7 h8 h9
Run Code Online (Sandbox Code Playgroud)
H将a,b,c,d映射为alpha,beta,gamma,delta,因此您有以下四个等式
alpha=H*a
beta=H*b
gamma=H*c
delta=H*d
Run Code Online (Sandbox Code Playgroud)
假设您知道a,b,c,d和alpha,beta,gamma,delta,您可以为九个未知数h1,h2,h3,h4,h5,h6,h7,h8,h9求解前四个方程组.
在这里,我刚刚描述了问题的"原始"解决方案,原则上可以解决; 有关上述方法的详细说明,您可以看到例如这个页面http://www.corrmap.com/features/homography_transformation.php它们放在哪里h9=1(因为H可以用8个参数表示)然后求解线性系统八个未知数中的八个方程.你可以在Elan Dubrofsky的论文Homography Estimation的第2部分找到类似的解释.
另一个解释是使用投影几何来纠正相机大卫奥斯汀在2013年3月的AMS专题栏中.
上述方法及其缺点,在Richard Hartley和Andrew Zissermann 在计算机视觉的第二版" 多视图几何 "中的第4章"估计 - 2D投影变换"中进行了描述,其中它们也描述了不同的和更好的算法; 你可以查看这个链接http://www.cse.iitd.ac.in/~suban/vision/geometry/node24.html,它似乎遵循同一本书.
您可以在第15.1.4节" 计算机视觉:西蒙·普林斯的模型,学习和推理 "一书中的"投影变换模型"中找到单应性的另一种解释.该算法算法15.4:投影变换(单应性)的最大似然学习在他的概述算法小册子:问题是由非线性最小化来解决.