实例中有一张图和一个标签
标签为
45 0.479492 0.688771 0.955609 0.5955
45 0.736516 0.247188 0.498875 0.476417
50 0.637063 0.732938 0.494125 0.510583
45 0.339438 0.418896 0.678875 0.7815
49 0.646836 0.132552 0.118047 0.096937
49 0.773148 0.129802 0.090734 0.097229
49 0.668297 0.226906 0.131281 0.146896
49 0.642859 0.079219 0.148063 0.148062
给的是图的中心坐标x,y和长和宽
cv2.rectangle函数需要的是左上角和右下角的坐标
import cv2
import os
fname = '000000000009'
key=fname
img = cv2.imread(fname+".jpg")
width=img.shape[1]
height=img.shape[0]
f=open(fname+".txt")
lines=f.readlines()
for line in lines :
para=list(map(float,line.split()))
ptLeftTop=(int((para[1]-para[3]/2)*width),int((para[2]-para[4]/2)*height))
ptRightBottom=(int((para[1]+para[3]/2)*width),int((para[2]+para[4]/2)*height))
cv2.putText(img,str(para[0]),ptLeftTop,cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255),thickness=1)
point_color=(0,255,0)
thickness= 1
cv2.rectangle(img, ptLeftTop,ptRightBottom,point_color,thickness=1)
f.close
cv2.namedWindow("result",0)
cv2.resizeWindow("result",800,600)
cv2.imshow("result",img)
cv2.waitKey(0)
效果如下