在已知平台上计算对象的位置 (x,y) (opencv-python)
Calculating positions of objects as (x,y) on a known platform (opencv-python)
我有一个我知道尺寸的平台。我想在通过网络摄像头查看时将放置在其上的对象的位置设置为 (x,y),原点是平台的左上角。不过,我只能从低角度看过去:example
我使用 otsu 阈值检测对象。我想使用边界矩形的底部边缘,然后根据角(我能想到的最好的)按比例调整它,但我不知道如何实现它。我试过扭曲透视,但它把物体放大了太多。 image with threshold // attempt of warp perspective
如有任何帮助或建议,我们将不胜感激。
不要像此处那样使用扭曲透视来变换图像以使 table 覆盖整个图像。
在图像处理中进行透视变换时,尽量不要对图像进行过多的变换。
下面是您的 table 标记有您变换的红色梯形的图像。
现在试着把它变成一个完美的矩形,但你不想像你那样把它变形太多。一种方法是通过简单地将较短边的顶点调整为直接位于下边顶点的上方,将梯形转换为矩形,如下图绿色所示。
这样,远离相机的东西只会稍微倾斜宽度。这将提供更好的结果。另一种更好的方法是稍微减小下边缘的尺寸并稍微增加上边缘的尺寸。这将均匀地倾斜保持在 table 上的对象,如下所示。
现在,由于您知道 table 的实际尺寸和图像中矩形的尺寸,您可以进行映射。使用它,您可以确定保存在 table.
上的对象的确切位置
我有一个我知道尺寸的平台。我想在通过网络摄像头查看时将放置在其上的对象的位置设置为 (x,y),原点是平台的左上角。不过,我只能从低角度看过去:example
我使用 otsu 阈值检测对象。我想使用边界矩形的底部边缘,然后根据角(我能想到的最好的)按比例调整它,但我不知道如何实现它。我试过扭曲透视,但它把物体放大了太多。 image with threshold // attempt of warp perspective
如有任何帮助或建议,我们将不胜感激。
不要像此处那样使用扭曲透视来变换图像以使 table 覆盖整个图像。
在图像处理中进行透视变换时,尽量不要对图像进行过多的变换。
下面是您的 table 标记有您变换的红色梯形的图像。
现在试着把它变成一个完美的矩形,但你不想像你那样把它变形太多。一种方法是通过简单地将较短边的顶点调整为直接位于下边顶点的上方,将梯形转换为矩形,如下图绿色所示。
这样,远离相机的东西只会稍微倾斜宽度。这将提供更好的结果。另一种更好的方法是稍微减小下边缘的尺寸并稍微增加上边缘的尺寸。这将均匀地倾斜保持在 table 上的对象,如下所示。
现在,由于您知道 table 的实际尺寸和图像中矩形的尺寸,您可以进行映射。使用它,您可以确定保存在 table.
上的对象的确切位置