本文主要是介绍将COCO2017标注文件中的bbox显示在图片上,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
from pycocotools.coco import COCO
import cv2
import pandas as pddef showNimages(imageidFile, annFile, imageFile, resultFile):""":param imageidFile: 要查看的图片imageid,存储一列在csv文件里 (目前设计的imageid需要为6位数,如果少于6位数,可以在前面加多个0):param annFile:使用的标注文件:param imageFile:要读取的image所在文件夹:param resultFile:画了标注之后的image存储文件夹:return:"""data = pd.read_csv(imageidFile)list = data.values.tolist()image_id = [] # 存储的是要提取图片idfor i in range(len(list)):image_id.append(list[i][0])print(image_id)print(len(image_id))coco = COCO(annFile)for i in range(len(image_id)):image = cv2.imread(imageFile + '000000' + str(image_id[i]) + '.jpg')annIds = coco.getAnnIds(imgIds=image_id[i], iscrowd=None)anns = coco.loadAnns(annIds)for n in range(len(anns)):x, y, w, h = anns[n]['bbox']x, y, w, h = int(x), int(y), int(w), int(h)# print(x, y, w, h)cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255))cv2.imwrite(resultFile + '000000' + str(image_id[i]) + 'result.png', image)print("生成图片存在{}".format(resultFile))
函数使用方法
if __name__ == "__main__":imageidFile = '/Desktop/myimage_id.csv'annFile = 'instances_val2017.json'imageFile = '/Users/Desktop/annotations/val2017/'resultFile = '/Users/Desktop/image/'
注意看imageidFile里面的数据格式:目前要求是6位,可以自己调整一下程序
效果如下
这篇关于将COCO2017标注文件中的bbox显示在图片上的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!