电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

python 截取XML中bndbox的坐標中的圖像,另存為jpg的實例

瀏覽:7日期:2022-08-03 08:33:34

文件目錄

Annotations中是XML文件。

JPEGImages中是對應的JPG文件

python 截取XML中bndbox的坐標中的圖像,另存為jpg的實例

XML文件

python 截取XML中bndbox的坐標中的圖像,另存為jpg的實例

要截取bndbox坐標中的內容。

python代碼

# -*- coding: utf-8 -*-# @Time : 2020/2/8 22:14# @Author : SanZhi# @File : get_xml.py# @Software: PyCharmimport cv2import numpy as npimport xml.dom.minidomimport osimport argparsedef main(): # JPG文件的地址 img_path = ’D:/ser/JPEGImages/’ # XML文件的地址 anno_path = ’D:/ser/Annotations/’ # 存結果的文件夾 cut_path = ’D:/ser/cut/’ # 獲取文件夾中的文件 imagelist = os.listdir(img_path) for image in imagelist: image_pre, ext = os.path.splitext(image) img_file = img_path + image img = cv2.imread(img_file) xml_file = anno_path + image_pre + ’.xml’ DOMTree = xml.dom.minidom.parse(xml_file) collection = DOMTree.documentElement objects = collection.getElementsByTagName('object') for object in objects: print('start') bndbox = object.getElementsByTagName(’bndbox’)[0] xmin = bndbox.getElementsByTagName(’xmin’)[0] xmin_data = xmin.childNodes[0].data ymin = bndbox.getElementsByTagName(’ymin’)[0] ymin_data = ymin.childNodes[0].data xmax = bndbox.getElementsByTagName(’xmax’)[0] xmax_data = xmax.childNodes[0].data ymax = bndbox.getElementsByTagName(’ymax’)[0] ymax_data = ymax.childNodes[0].data xmin = int(xmin_data) xmax = int(xmax_data) ymin = int(ymin_data) ymax = int(ymax_data) img_cut = img[ymin:ymax, xmin:xmax, :] cv2.imwrite(cut_path + ’cut_img_{}.jpg’.format(image_pre), img_cut)if __name__ == ’__main__’: main()

補充知識:python讀取XML中bndbox和object name的方法

直接貼代碼了,封裝為了函數,直接調用即可。其中有幾個點需要注意。

1、bndbox下面有4個子對象,因此不能直接使用firstChild來找到內容,需要從該對象里面繼續尋找標簽為xmin等這樣的對象,注意要加[0]才正確,有問題的可以直接調試,然后看變量的結構,根據變量的結構來調用某一對象。

2、將空格’ ’替換為’_’,方便命名。但是使用str.replace(’ ’, ’_’)不會直接改變str的內容,返回的字符串是改變后的,因此需要變量保存。

import xml.dom.minidom as xmldomdef get_bndboxfromxml(imageNum, xmlfilebasepath): # 讀取xml文件 bndbox = [0, 0, 0, 0] xmlfilepath = xmlfilebasepath + '%06d' % imageNum+’.xml’ # print(xmlfilepath) domobj = xmldom.parse(xmlfilepath) elementobj = domobj.documentElement sub_element_obj = elementobj.getElementsByTagName(’bndbox’) if sub_element_obj is not None: bndbox[0] = int(sub_element_obj[0].getElementsByTagName(’xmin’)[0].firstChild.data) bndbox[1] = int(sub_element_obj[0].getElementsByTagName(’ymin’)[0].firstChild.data) bndbox[2] = int(sub_element_obj[0].getElementsByTagName(’xmax’)[0].firstChild.data) bndbox[3] = int(sub_element_obj[0].getElementsByTagName(’ymax’)[0].firstChild.data) return bndboxdef get_bndboxnamefromxml(imageNum, xmlfilebasepath): bndbox = [0, 0, 0, 0] xmlfilepath = xmlfilebasepath + '%06d' % imageNum + ’.xml’ domobj = xmldom.parse(xmlfilepath) elementobj = domobj.documentElement sub_element_obj = elementobj.getElementsByTagName(’name’) name = sub_element_obj[0].firstChild.data.replace(’ ’, ’_’) return name

以上這篇python 截取XML中bndbox的坐標中的圖像,另存為jpg的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
主站蜘蛛池模板: 事迹材料_个人事迹名人励志故事| 大鼠骨髓内皮祖细胞-小鼠神经元-无锡欣润生物科技有限公司 | 便携式谷丙转氨酶检测仪|华图生物科技百科 | 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | HDPE土工膜,复合土工膜,防渗膜价格,土工膜厂家-山东新路通工程材料有限公司 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | MVR蒸发器厂家-多效蒸发器-工业废水蒸发器厂家-康景辉集团官网 | 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 真空乳化机-灌装封尾机-首页-温州精灌| 分子蒸馏设备(短程分子蒸馏装置)_上海达丰仪器| 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 天津拓展_天津团建_天津趣味运动会_天津活动策划公司-天津华天拓展培训中心 | 挨踢网-大家的导航!| 天津仓库出租网-天津电商仓库-天津云仓一件代发-【博程云仓】 | 探伤仪,漆膜厚度测试仪,轮胎花纹深度尺厂家-淄博创宇电子 | 兰州牛肉面加盟,兰州牛肉拉面加盟-京穆兰牛肉面 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 直读光谱仪,光谱分析仪,手持式光谱仪,碳硫分析仪,创想仪器官网 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 在线悬浮物浓度计-多参数水质在线检测仪-上海沃懋仪表科技有限公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 耐磨陶瓷管道_除渣器厂家-淄博浩瀚陶瓷科技有限公司 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 深圳市索富通实业有限公司-可燃气体报警器 | 可燃气体探测器 | 气体检测仪 | 商用绞肉机-熟肉切片机-冻肉切丁机-猪肉开条机 - 广州市正盈机械设备有限公司 | 广域铭岛Geega(际嘉)工业互联网平台-以数字科技引领行业跃迁 | 横河变送器-横河压力变送器-EJA变送器-EJA压力变送器-「泉蕴仪表」 | 房间温控器|LonWorks|海思| 河南膏药贴牌-膏药代加工-膏药oem厂家-洛阳今世康医药科技有限公司 | 美国查特CHART MVE液氮罐_查特杜瓦瓶_制造全球品质液氮罐 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 |