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 編程
主站蜘蛛池模板: 国产亚洲区| 色必久久 | 蜜桃久久 | av大片在线 | 国产精品三级 | 国产一区二区免费在线 | 91精品一区二区三区久久久久 | 日韩欧美国产精品 | 日本小电影网站 | 精品自拍视频 | 国产精品免费观看 | 日韩免费av一区二区 | 亚洲一区二区三区视频免费观看 | 天堂中文字幕av | 国产日产久久高清欧美一区 | 亚洲自拍偷拍视频 | 亚洲精品免费观看 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 日韩精品久久 | 亚洲综合一区二区三区 | 99精品亚洲国产精品久久不卡 | 又黑又粗又长的欧美一区 | 蜜臀久久99精品久久久久久宅男 | 欧美一区免费 | 亚洲人在线播放 | 51ⅴ精品国产91久久久久久 | 一区二区国产精品 | 色呦呦网站| 成人精品一区二区 | 亚洲精品福利视频 | 婷婷色在线播放 | 日本不卡一区二区三区在线观看 | 亚洲一区二区三区高清 | 九九精品久久久 | 中文字幕 国产精品 | 国产成人aⅴ| 91免费福利在线 | 国产剧情一区 | 97久久精品 | 亚洲黄色高清视频 | 日韩成人免费在线视频 |