透视矩阵中将一条线从图像映射到世界的最小数量的唯一参数

问题描述

我的问题的最小部分

给定

  • 绿线与红线平行和垂直(在现实世界中)
  • 已知两个距离(紫色)

查找

  • 距离 x(米),从第一条绿线和红线的交点到该线上任意点

enter image description here

二维案例(已知):

给定图像中的 4 个点来表示现实世界中已知边(米)和角度的多边形,我可以使用 cv2. getPerspectiveTransform() 找到 3x3 变换矩阵并使用 cv2.warpPerspective 找到图像中任意两点之间的实际距离 (m)。所以,我需要 4 个点 = 8 个独立的值来找到那个变换。

我的案例:

现在,我不想要二维信息。我只想将图像中的红线映射到代表沿该线实际长度的线。直觉上,似乎只有 2 个独立的值就足够了。我可以画额外的绿线,沿着红线获得更多的距离。应该够了吧?

我该怎么做?映射在 2D 中似乎不是线性的(消失点可能映射到无穷大)。所以,我可能需要一个 3x3 矩阵。但是这 9 个值中有多少是独立的?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)