【问题标题】:Defining a 3D scene from a photo of a circle从圆形照片定义 3D 场景
【发布时间】:2016-01-18 23:43:03
【问题描述】:

给定一张包含圆圈的照片,例如这张喷泉的照片:

是否可以定义喷泉相对于相机的 3D 位置和旋转?

我知道我们必须定义比例,所以假设喷泉是 2m 宽(由喷泉内缘组成的圆的直径是 2m)。

所以假设圆是一个完美的圆,并将直径定义为 2m,是否可以确定圆和相机在空间上的关系?我不知道任何相机矩阵或任何东西,我唯一的信息就是图片。

我特别想确定喷泉边缘上给定像素的 3D 坐标。

执行此操作的数学和/或 OpenCV 代码是什么?

【问题讨论】:

  • 你认为圆圈出现在“地平面”上吗?如果您从中创建足够多的已知点,则可能可以从该圆计算相机外在因素。您可以在该圆上定义一个轴,并可能从角度关系中定义更多点。但是,您无法从中计算内在函数,最好是按比例计算内在函数,因为从相机到物体的距离和焦距可以相互抵消......
  • 但是,如果可能的话,外部因素不会是“全局的”,所以如果你拍摄同一个圆圈的两张照片,你将无法找到两个相机之间的正确关系,除非您能够在两个图像中定义相同的 3D 圆轴,因此您需要一些基于图像的方法来定义您的轴。总之,您必须知道该椭圆内原始圆的中点!

标签: opencv math geometry computer-vision linear-algebra


【解决方案1】:

透视圆是椭圆。所以你基本上需要一个椭圆检测器。 这个算法应该可以工作:

  1. 检测给定图像中的所有椭圆。
  2. 过滤掉您认为它们不是原点圆的椭圆。 (仅使用 1 个相机是不可能的,因此您必须依赖以前的知识。类似的事情您知道您正在为一个圆圈拍照)。
  3. 嗯,我不再在这里打字了,带上纸和笔,开始思考如何估计 Homography,这并不容易!您应该将圆处理为椭圆的特殊情况,然后尝试构建线性方程组。但是,我快速搜索了一下:

https://www.researchgate.net/publication/265212988_Homography_estimation_using_one_ellipse_correspondence_and_minimal_additional_information

http://www.macs.hw.ac.uk/bmvc2006/papers/306.pdf

似乎很有趣的话题,我以后有时会抽空!

【讨论】:

    猜你喜欢
    • 2012-10-29
    • 2014-07-17
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    相关资源
    最近更新 更多