实例中有一张图和一个标签
标签为
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)
效果如下



