我有一组图像和它们对应的YOLO坐标。现在我想将这些YOLO坐标表示的对象提取到单独的图像中
但这些坐标是浮点表示法,因此我不能使用拼接
这是一个图像Sample Image,对应的YOLO坐标为
labels = [0.536328, 0.5, 0.349219, 0.611111]
我的图片如下:
image = cv2.imread('frame0.jpg')
然后我想使用类似于image[y:y+h,x:x+w]
的东西,就像我在一个类似的问题中看到的那样。但是变量是浮点数,所以我尝试使用图像的维数1280 x 720
将它们转换为整数,如下所示:
object = [int(label[0]*720), int(label[1]*720), int(label[2]*1280), int(label[3]*1280)]
x,y,w,h = object
但是它没有像你在这里看到的那样正确地获取图像的部分extractedImage
这是我的训练数据集的一部分,所以我之前使用一些工具裁剪了这些部分,所以标签中不会有任何错误。另外,所有的图像都以这种方式进行了不正确的裁剪,我已经显示了其中一幅图像的输出
先谢谢你。任何建议都会非常有用
标签需要以不同的方式进行规范化-因为
x
和y
相对于屏幕的中心,它们实际上分别乘以W/2
和H/2
。此外,宽度和高度尺寸必须分别乘以W
和H
,它们目前都被W
(1280)规范化。我是这样解决的:输出:
]1
希望这有帮助
相关问题 更多 >
编程相关推荐