如何将3D透视畸变的二次多项式像素坐标转换为标准公式?
解决方案:透视扭曲二次点集转原二次多项式公式
可行性结论
完全可行,核心依据是射影变换(透视属于射影变换)不会改变代数曲线的次数——原平面的二次曲线经过透视投影后,在图像中仍然是二次曲线,因此可以通过逆变换或针对性拟合还原出原二次多项式。
两种实操路径
路径1:先校正透视畸变,再做多项式拟合
- 步骤1:求解透视变换矩阵
已知原曲线与x轴的两个交点对应图像中的首尾像素点,若能额外获取原平面上的1-2个参考点(比如原x轴上的第三个标记点、原二次曲线的顶点像素),即可通过这些对应点计算出从图像平面到原平面的3x3齐次透视变换矩阵H。 - 步骤2:逆变换还原真实坐标
将所有扭曲的像素坐标通过矩阵H的逆变换,转换为原平面的真实坐标(X,Y)。 - 步骤3:二次多项式回归
对还原后的(X,Y)点集做二次多项式回归,直接得到目标公式Y = aX² + bX + c。
路径2:直接利用射影几何性质拟合原曲线
- 原平面的二次曲线在透视变换下,会映射为图像中的二次曲线,其齐次方程形式为:
A x'² + B x'y' + C y'² + D x' + E y' + F = 0(其中(x',y')是图像像素坐标)。 - 用图像中的点集拟合出这个图像二次曲线的参数
A-F。 - 结合透视变换的逆变换,将图像二次曲线的方程转换为原平面中
Y关于X的函数形式,整理后得到标准二次多项式。
关于交比与灭点的作用
- 交比:用于确定透视变换中的长度比例关系,比如原x轴上的点在图像中的交比与原平面的交比相等,可通过这个性质计算原x轴上点的真实坐标,辅助求解透视变换矩阵。
- 灭点:可快速定位原平面坐标轴在图像中的消失方向,用来约束透视变换的参数,减少计算时的未知数数量,提升求解效率。
多项式回归的注意事项
直接对图像中的扭曲点做二次回归,得到的是图像平面内的二次曲线,而非原平面的目标公式。必须先完成透视校正,再对还原后的真实坐标做回归,才能得到正确的结果。
内容的提问来源于stack exchange,提问作者Vincent
相关产品推荐
相关产品推荐

