coco标注中的bbox信息给的是(x,y,w,h)
在算法中,需要把其转化为(x1,x2,y1,y2)
一个图片上的左上角为(0,0),如上图所示,这样转换格式就不容易出问题
同时,如果图片水平翻转,坐标应该如何变化呢
因为(x1,y1)总是代表bbox的左上角,那么转化的时候,看看转换后那个是新的左上角,那个是新的原点,然后再新的坐标系中计算坐标。
图像水平翻转代码 变换
width = entry['width']
boxes = entry['boxes'].copy()
oldx1 = boxes[:, 0].copy()
oldx2 = boxes[:, 2].copy()
boxes[:, 0] = width - oldx2 - 1
boxes[:, 2] = width - oldx1 - 1
最近看的时候又犯傻了,图片的左上角为(0,0)
水平翻转后,原有的右上角变成新的吧(0,0),那么此时的bbox的左上角的为原有的右上角,在新的坐标系在x轴的投影为 width(图片的长度)-oldx2-1