标签: vanishing-point

从消失点计算旋转矩阵

我正在尝试恢复图像中建筑物三个轴的 3D 方向。

我目前的做法是手动标注三个轴对应的三个消失点,估计相机标定矩阵K,然后通过归一化K^{-1}v_{i}从一个消失点计算旋转矩阵的每一列,如本文附录中所述。

尽管这似乎有效,但 R 的计算列并不完全正交,我怀疑如果消失点噪声更大,问题会更加明显。

我可以通过使用 SVD 分解估计的 R 并将所有奇异值设置为 1 来捏造它,但我更喜欢更有原则的解决方案。另一种思路是将其作为约束优化问题来解决,该问题旨在最小化消失点上的投影误差。

是否有更好的方法从 K 和消失点计算旋转矩阵,同时考虑正交性和列单位约束?

提前致谢。

3d computer-vision rotational-matrices vanishing-point

5
推荐指数
1
解决办法
1905
查看次数

消失点如何帮助恢复正确的相机视角?

我正在尝试将3D对象插入到照片中,这不是我拍摄的.元信息被删除,因此我只能猜测场景中对象的相机参数和尺寸.在这种情况下如何设置适当的营地,有什么方法吗?

我已经看到人们正在绘制辅助线,找到消失点,但是当我理解消失点的含义时,我不知道如何帮助恢复视角.关于这个话题的任何好的写作?

3d camera perspective vanishing-point

4
推荐指数
1
解决办法
3157
查看次数

使用 Open CV 从线条中提取消失点

我正在 Python 中处理基于 OpenCV 的项目,我必须计算/提取并直观地显示现有线条的消失点。

我的第一个任务是检测线条,使用 Canny 和 HoughLinesP 函数非常容易:

import cv2
import numpy as np

img = cv2.imread('.image.jpg')

gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
edges = cv2.Canny(gray, 500, 460)
lines = cv2.HoughLinesP(edges, 1, np.pi/180, 30, maxLineGap=250)
for line in lines:
   x1, y1, x2, y2 = line[0]
   cv2.line(img, (x1, y1), (x2, y2), (0, 0, 128), 1)

cv2.imwrite('linesDetected.jpg', img)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但我想计算/推断所有线条的消失点,以找到(并绘制)它们相互交叉的位置,如下图所示。

我知道我需要添加一个更大的框架来绘制线条的延续,以找到交叉点(消失点),但此时我非常迷茫。

太感谢了!!

视觉上的消失点提取

python opencv vanishing-point straight-line-detection

3
推荐指数
2
解决办法
4462
查看次数