【问题标题】:Calculating positions of objects as (x,y) on a known platform (opencv-python)在已知平台(opencv-python)上将对象的位置计算为(x,y)
【发布时间】:2021-08-29 20:48:24
【问题描述】:

我有一个我知道尺寸的平台。我想通过网络摄像头查看放置在其上的对象的位置(x,y),原点是平台的左上角。不过我只能低角度看:example

我使用 otsu 阈值检测对象。我想使用边界矩形的底部边缘,然后根据角对其进行相应的比例(我能想到的最好的),但我不知道如何实现它。我尝试了扭曲透视,但它放大了物体太多。 image with threshold // attempt of warp perspective

任何帮助或建议将不胜感激。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python opencv computer-vision


【解决方案1】:

不要像在此处那样使用扭曲透视来变换图像以使表格覆盖整个图像。

在图像处理中进行透视变换时,尽量不要过度变换图像。

下面是您转换后的带有红色梯形标记的桌子的图像。

现在尝试将其转换为一个完美的矩形,但您不想像之前那样对其进行过多的转换。一种方法是通过简单地调整较短边的顶点使其直接位于下边的顶点上方,将梯形转换为矩形,如下图绿色所示。

这样,远离相机的东西只会稍微倾斜一点宽度。这将产生更好的结果。另一种更好的方法是稍微减小下边缘的大小并稍微增加上边缘的大小。这将均匀地倾斜保留在桌子上的对象,如下所示。

现在,当您知道表格的实际尺寸和图像中矩形的尺寸后,您就可以进行映射了。使用它,您可以确定放在桌子上的物体的确切位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    相关资源
    最近更新 更多