【问题标题】:Is it possible to perspectivetransform an ellipse into a circle?是否可以透视将椭圆转换为圆形?
【发布时间】:2018-12-27 08:20:20
【问题描述】:

对于一个项目,我需要存储在一些照片上检测到的圆圈。问题是其中一些照片是从某个角度拍摄的,这意味着圆圈是椭圆形的。是否有可能以某种方式将椭圆变成圆形?

我想修正椭圆,然后将矩形转换为正方形。我想到了不确定的问题,这意味着我的方法有太多可能的变化,并且每种方法的结果都不同。

【问题讨论】:

  • 给我们看图片,否则任何答案都可能毫无意义。而“存圈”意义不大。它只是保持中心/半径吗??
  • 透视投影圆不是椭圆!!!相当椭圆的形状......在非投影后,您将再次获得圆形,但为此您需要知道透视矩阵(因此使用的FOVx,FOVy和相机焦距)和点的距离......但是你可以估计圆所在的平面,这足以在投影后拟合适合您形状的圆....有关其他想法,请参阅Transformation of 3D objects related to vanishing points and horizon line

标签: opencv computer-vision geometry multiview


【解决方案1】:

要找到透视变换,需要有4对对应的坐标:扭曲图像上的点和透视校正后的理想位置。

在这种情况下,您可以使用getPerspectiveTransform 函数计算透视变换矩阵并将其应用于校正所有图片。 Example

【讨论】:

  • 在这种情况下要找到 4 个点,可以使用 fitEllipse 或 minAreaRect,但转换后的圆的中心可能不是椭圆的中心,因此扭曲的图像可能看起来与原始图像不太一样真正的圈子……
猜你喜欢
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
相关资源
最近更新 更多