亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python目標檢測給圖畫框,bbox畫到圖上并保存案例

瀏覽:20日期: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) # 得到標簽名為object的信息 objectlist = collection.getElementsByTagName('object') for objects in objectlist: # 每個object中得到子標簽名為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’) #注意坐標,看是否需要轉換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

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

使用Faster-rcnn 的test_net.py 檢測網絡的mAP等精度會生成一個檢測結果(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數據,每幅圖像可能包括多個box,需要判斷提取的多行數據是不是屬于同一圖片

下面使用python提取這些數據,在原圖上畫出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()

運行完即可在保存文件夾中得到效果圖。

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

標簽: Python 編程
主站蜘蛛池模板: 男女一级特黄a大片 | 国产美女色视频 | 久久国产这里只精品免费 | 爱爱欧美 | 怡红院日本一道日本久久 | 男人j桶进女人p无遮挡动态图二三 | 激情婷婷网 | 久久久日韩精品国产成人 | 欧美国产亚洲精品高清不卡 | 99久久婷婷免费国产综合精品 | 黄色一级大片视频 | 91精品国产薄丝高跟在线看 | 日本黄视频在线观看 | 麻豆404| 亚洲经典一区二区三区 | 中国孕妇疯狂xxxxbbbb | 美女牲交毛片一级视频 | 黄色a级片免费 | 色综合网亚洲精品久久久 | 国产一区二区三区不卡观 | 欧美综合偷拍在线另类卡通小说 | 精品一区二区三区免费站 | 网红主播vip福利视频 | 日本中文字幕精品理论在线 | 欧美一区二区三区免费 | 美女一级毛片免费观看 | 精品日韩在线视频 | 精品特级毛片 | 狠狠色噜噜综合社区 | 国产精品视频网站你懂得 | 国产福利写真视频在线观看 | 97超级碰碰碰碰在线视频 | 免费观看黄色大片 | 国精品产 | 亚洲国产精品一区二区三区久久 | 91手机在线观看 | 久久国产精品一国产精品金尊 | 毛片随便看 | 亚洲欧美在线精品 | 亚洲欧洲日韩另类自拍 | 免费看影片的网站入口 |