方形到梯形

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:投影变换(单应性)的最大似然学习在他的概述算法小册子:问题是由非线性最小化来解决.