av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

python目標(biāo)檢測給圖畫框,bbox畫到圖上并保存案例

瀏覽:52日期:2022-08-02 18:44:37

我就廢話不多說了,還是直接上代碼吧!

import osimport xml.dom.minidomimport cv2 as cv ImgPath = ’C:/Users/49691/Desktop/gangjin/gangjin_test/JPEGImages/’AnnoPath = ’C:/Users/49691/Desktop/gangjin/gangjin_test/Annotations/’ #xml文件地址save_path = ’’def draw_anchor(ImgPath,AnnoPath,save_path): imagelist = os.listdir(ImgPath) for image in imagelist: image_pre, ext = os.path.splitext(image) imgfile = ImgPath + image xmlfile = AnnoPath + image_pre + ’.xml’ # print(image) # 打開xml文檔 DOMTree = xml.dom.minidom.parse(xmlfile) # 得到文檔元素對象 collection = DOMTree.documentElement # 讀取圖片 img = cv.imread(imgfile) filenamelist = collection.getElementsByTagName('filename') filename = filenamelist[0].childNodes[0].data print(filename) # 得到標(biāo)簽名為object的信息 objectlist = collection.getElementsByTagName('object') for objects in objectlist: # 每個object中得到子標(biāo)簽名為name的信息 namelist = objects.getElementsByTagName(’name’) # 通過此語句得到具體的某個name的值 objectname = namelist[0].childNodes[0].data bndbox = objects.getElementsByTagName(’bndbox’) # print(bndbox) for box in bndbox:x1_list = box.getElementsByTagName(’xmin’)x1 = int(x1_list[0].childNodes[0].data)y1_list = box.getElementsByTagName(’ymin’)y1 = int(y1_list[0].childNodes[0].data)x2_list = box.getElementsByTagName(’xmax’) #注意坐標(biāo),看是否需要轉(zhuǎn)換x2 = int(x2_list[0].childNodes[0].data)y2_list = box.getElementsByTagName(’ymax’)y2 = int(y2_list[0].childNodes[0].data)cv.rectangle(img, (x1, y1), (x2, y2), (255, 255, 255), thickness=2)cv.putText(img, objectname, (x1, y1), cv.FONT_HERSHEY_COMPLEX, 0.7, (0, 255, 0), thickness=2)# cv.imshow(’head’, img)cv.imwrite(save_path+’/’+filename, img) #save picture

補(bǔ)充知識:深度學(xué)習(xí)python之用Faster-rcnn 檢測結(jié)果(txt文件) 在原圖畫出box

使用Faster-rcnn 的test_net.py 檢測網(wǎng)絡(luò)的mAP等精度會生成一個檢測結(jié)果(txt文件),格式如下:

000004 0.972 302.8 94.5 512.0 150.0000004 0.950 348.1 166.1 512.0 242.9000004 0.875 1.0 25.7 292.6 126.3000004 0.730 1.0 138.5 488.3 230.0000004 0.699 1.0 120.9 145.5 139.9000004 0.592 54.4 227.4 431.9 343.4000004 0.588 1.0 159.8 18.8 231.6000004 0.126 1.0 247.1 342.3 270.0000004 0.120 1.0 225.4 185.7 309.3

每行分別為 名稱 檢測概率 xmin ymin xmax ymax

問題在于每一行只顯示一個box數(shù)據(jù),每幅圖像可能包括多個box,需要判斷提取的多行數(shù)據(jù)是不是屬于同一圖片

下面使用python提取這些數(shù)據(jù),在原圖上畫出box并且保存起來

import osimport os.pathimport numpy as npimport xml.etree.ElementTree as xmlETfrom PIL import Image, ImageDrawimport cPickle as pickle txt_name = ’comp4_8a226fd7-753d-40fc-8013-f68d2a465579_det_test_ship.txt’file_path_img = ’/home/JPEGImages’save_file_path = ’/home/detect_results’source_file = open(txt_name)img_names = []for line in source_file: staff = line.split() img_name = staff[0] img_names.append(img_name)name_dict = {}for i in img_names: if img_names.count(i)>0: name_dict[i] = img_names.count(i) source_file.close()source_file = open(txt_name)for idx in name_dict: img = Image.open(os.path.join(file_path_img, idx + ’.jpg’)) draw = ImageDraw.Draw(img) for i in xrange(name_dict[idx]): line = source_file.readline() staff = line.split() score = staff[1] box = staff[2:6] draw.rectangle([int(np.round(float(box[0]))), int(np.round(float(box[1]))), int(np.round(float(box[2]))), int(np.round(float(box[3])))], outline=(255, 0, 0)) img.save(os.path.join(save_file_path, idx + ’.jpg’)) source_file.close()

運(yùn)行完即可在保存文件夾中得到效果圖。

以上這篇python目標(biāo)檢測給圖畫框,bbox畫到圖上并保存案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
主站蜘蛛池模板: 日本亚洲精品 | 亚洲一区视频 | 日本黄色一级视频 | 亚洲精品视频免费观看 | 久久综合一区 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 密室大逃脱第六季大神版在线观看 | 欧美激情国产日韩精品一区18 | 91在线精品秘密一区二区 | 黄色三级免费网站 | 成人中文网 | 亚洲高清在线观看 | 久久综合狠狠综合久久综合88 | 午夜在线观看免费 | 久久九九网站 | 久久男人天堂 | 日韩av啪啪网站大全免费观看 | h片在线看 | 国产精品一区二区三区在线播放 | 国产精品久久久久久久久久久久久 | 成人精品一区二区三区 | 国产欧美精品一区二区色综合朱莉 | 国产精品一区2区 | 正在播放国产精品 | 国产精品一区二区三区在线 | 福利片在线观看 | 欧美一区日韩一区 | 韩国av一区二区 | 精品一区二区三区在线观看 | 夜夜爽99久久国产综合精品女不卡 | 欧美日韩在线观看视频 | 一区二区精品 | 一级做a毛片 | 一区二区三区在线免费看 | 高清一区二区视频 | 成人av免费| 黄网免费| 91 在线| 精品国产精品三级精品av网址 | 亚洲男人网| 91av在线视频观看 |