透视转换是如何工作的?[OpenCV python]

2024-03-28 09:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我的论文的一部分涉及到纠正一个图像的一部分,它不是完美的正面透视图。我不能添加图像,因为我的分数很低,但本质上是这个python code (with images)

我已经建立了这个程序,它是有效的,但我不明白它背后的数学原理。我已经研究了矩阵图像校正和单应性,但有一个巨大的技能差距,我不能理解任何一点。我不知道从哪里开始学数学。我知道矩阵的基本知识,仅此而已。我想让我自己编写矩阵变换函数

简言之,我需要“学习”什么才能理解数学

多谢各位


Tags: 图像程序技能withcode矩阵数学分数
2条回答

透视变换只是一个分数阶线性方程,通过矩阵形式求解

分数线性方程的形式在分子上是线性的,在分母上是线性的,即在分子和分母上都是一阶项

x = (P1*u + P2*v + P3) / (P7*u + P8*v + 1)
y = (P4*u + P5*v + P6) / (P7*u + P8*v + 1)

其中x,y为输入坐标,u,v为输出坐标。(逆矩阵也是分数线性的,因此它具有相同的形式)

在矩阵形式中,这是:

(x)  =  ( P1  P2  P3 )  (u)
(y)     ( P4  P5  P6 )  (v)
(1)     ( P7  P8   1 )  (1)

这七个未知的Ps可以通过4(或更多)对共轭输入和输出坐标的联立方程来求解

我相信这是不可能的,但你可以试试。 实际上,射影几何是大学数学专业研究的一个很深的数学概念。如果你真的想很好地理解它,你必须成为一个数学家。 射影几何是继线性代数、解析几何和仿射几何之后的又一门学科。 但我怀疑你是否需要这一切。 可以考虑一种简化的图像处理方法,如herehere

相关问题 更多 >