Opencv绘制多边形不显示
如果图片是由torch.Tensor转换而来,直接使用Opencv进行多边形绘制(或其他任意图形),绘图操作不会生效。
这个问题是我在使用icdar15数据集时发现的,代码如下:
rects = rects_tensor.data.numpy().reshape((-1,4,2)).astype(np.int32) * 4
img = (img_tensor.data.numpy().transpose(1,2,0) * 255).astype(np.uint8)
cv2.polylines(img,rects,True,(255,0,0),2)
plt.figure(figsize=(8,8))
plt.imshow(img)

解决这个问题只需将img重新使用opencv进行一次resize即可:
rects = rects_tensor.data.numpy().reshape((-1,4,2)).astype(np.int32) * 4
img = (img_tensor.data.numpy().transpose(1,2,0) * 255).astype(np.uint8)
img = cv2.resize(img,img.shape[:2])
cv2.polylines(img,rects,True,(255,0,0),2)
plt.figure(figsize = (8,8))
plt.imshow(img)

网友评论