日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

目标检测 - 如何在图片中标记Annotations中的坐标信息?

發布時間:2025/4/5 228 豆豆
生活随笔 收集整理的這篇文章主要介紹了 目标检测 - 如何在图片中标记Annotations中的坐标信息? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先看我們代碼的效果:

原始圖片:

加載坐標信息后的圖片:


我的文件結構是這樣的:

這是我用于處理的代碼:

import os import cv2 as cv import xml.etree.ElementTree as ETdef xml_to_jpg(imgs_path, xmls_path, out_path):imgs_list = os.listdir(imgs_path) #讀取圖片列表xmls_list = os.listdir(xmls_path) # 讀取xml列表if len(imgs_list) <= len(xmls_list): #若圖片個數小于或等于xml個數,從圖片里面找與xml匹配的print("標記點1")for imgName in imgs_list:temp1 = imgName.split('.')[0] #圖片名 例如123.jpg 分割之后 temp1 = 123temp1_ = imgName.split('.')[1] #圖片后綴if temp1_!='jpg' and temp1_ !='jpeg':continuefor xmlName in xmls_list: #遍歷xml列表temp2 = xmlName.split('.')[0] #xml名temp2_ = xmlName.split('.')[1]if temp2_ != 'xml':continueif temp2!=temp1: #判斷圖片名與xml名是否相同continueelse: #不同的話 開始讀取xml坐標信息img_path = os.path.join(imgs_path, imgName)xml_path = os.path.join(xmls_path, xmlName)img = cv.imread(img_path)labelled = imgroot = ET.parse(xml_path).getroot()for obj in root.iter('object'):bbox = obj.find('bndbox')xmin = int(bbox.find('xmin').text.strip())ymin = int(bbox.find('ymin').text.strip())xmax = int(bbox.find('xmax').text.strip())ymax = int(bbox.find('ymax').text.strip())labelled = cv.rectangle(labelled, (xmin, ymin), (xmax, ymax), (0, 0, 255), 2)cv.imwrite(out_path + '\\' +imgName, labelled)breakelse: # 若xml個數小于圖片個數,從xml里面找與圖片匹配的。下面操作與上面差不多print("標記點2")for xmlName in xmls_list:temp1 = xmlName.split('.')[0]temp1_ = xmlName.split('.')[1]if temp1_ != 'xml':continuefor imgName in imgs_list:temp2 = imgName.split('.')[0]temp2_ = imgName.split('.')[1] # 圖片后綴if temp2_ != 'png':continueif temp2 != temp1:continueelse:img_path = os.path.join(imgs_path, imgName)xml_path = os.path.join(xmls_path, xmlName)img = cv.imread(img_path)labelled = imgroot = ET.parse(xml_path).getroot()for obj in root.iter('object'):bbox = obj.find('bndbox')xmin = int(bbox.find('xmin').text.strip())ymin = int(bbox.find('ymin').text.strip())xmax = int(bbox.find('xmax').text.strip())ymax = int(bbox.find('ymax').text.strip())labelled = cv.rectangle(labelled, (xmin, ymin), (xmax, ymax), (0, 0, 255), 1)print(out_path + imgName)cv.imwrite(out_path + imgName, labelled)break if __name__ == '__main__':imgs_path = r'./A/' #圖片路徑xmls_path = r'./B_xml/' #xml路徑retangele_img_path = './pic_out/' #保存畫框的路徑xml_to_jpg(imgs_path, xmls_path, retangele_img_path) 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的目标检测 - 如何在图片中标记Annotations中的坐标信息?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。