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

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

Python 讀取xml數據,cv2裁剪圖片實例

瀏覽:30日期:2022-08-03 08:37:33

下載的數據是pascal voc2012的數據,已經有annotation了,不過是xml格式的,訓練的模型是在Google模型的基礎上加了兩層網絡,因此要在原始圖像中裁剪出用于訓練的部分圖像。

另外,在原來給的標注框的基礎上,做了點框的移動。最后同類目標存儲在同一文件夾中。

from __future__ import divisionimport osfrom PIL import Imageimport xml.dom.minidomimport numpy as np ImgPath = ’C:/Users/Desktop/XML_try/img/’ AnnoPath = ’C:/Users/Desktop/XML_try/xml/’ProcessedPath = ’C:/Users/Desktop/CropedVOC/’ imagelist = os.listdir(ImgPath)for image in imagelist:image_pre, ext = os.path.splitext(image)imgfile = ImgPath + image xmlfile = AnnoPath + image_pre + ’.xml’DomTree = xml.dom.minidom.parse(xmlfile)annotation = DomTree.documentElement filenamelist = annotation.getElementsByTagName(’filename’) #[<DOM Element: filename at 0x381f788>]filename = filenamelist[0].childNodes[0].dataobjectlist = annotation.getElementsByTagName(’object’)i = 1for objects in objectlist:namelist = objects.getElementsByTagName(’name’)objectname = namelist[0].childNodes[0].data savepath = ProcessedPath + objectname if not os.path.exists(savepath):os.makedirs(savepath) bndbox = objects.getElementsByTagName(’bndbox’)cropboxes = [] 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) w = x2 - x1h = y2 - y1 obj = np.array([x1,y1,x2,y2])shift = np.array([[0.8,0.8,1.2,1.2],[0.9,0.9,1.1,1.1],[1,1,1,1],[0.7,0.7,1,1],[1,1,1.2,1.2],[0.7,1,1,1.2],[1,0.7,1.2,1],[(x1+w*1/3)/x1,(y1+h*1/3)/y1,(x2+w*1/3)/x2,(y2+h*1/3)/y2],[(x1-w*1/3)/x1,(y1-h*1/3)/y1,(x2-w*1/3)/x2,(y2-h*1/3)/y2]]) XYmatrix = np.tile(obj,(9,1)) cropboxes = XYmatrix * shift img = Image.open(imgfile)for cropbox in cropboxes:cropedimg = img.crop(cropbox)cropedimg.save(savepath + ’/’ + image_pre + ’_’ + str(i) + ’.jpg’)i += 1

補充知識:python-----截取xml文件畫框的圖片并保存

from __future__ import divisionimport osfrom PIL import Imageimport xml.dom.minidomimport numpy as npImgPath = r’D:tmpvideo_wang_mod0100022_8253_0021_3output/’AnnoPath = r’D:tmpvideo_wang_mod0100022_8253_0021_3Annotations/’ProcessedPath = r’D:tmpvideo_wang_mod0100022_8253_0021_3cut/’imagelist = os.listdir(ImgPath)for image in imagelist: image_pre, ext = os.path.splitext(image) imgfile = ImgPath + image print(imgfile) if not os.path.exists(AnnoPath + image_pre + ’.xml’ ): continue xmlfile = AnnoPath + image_pre + ’.xml’ DomTree = xml.dom.minidom.parse(xmlfile) annotation = DomTree.documentElement filenamelist = annotation.getElementsByTagName(’filename’) filename = filenamelist[0].childNodes[0].data objectlist = annotation.getElementsByTagName(’object’) i = 1 for objects in objectlist: namelist = objects.getElementsByTagName(’name’) objectname = namelist[0].childNodes[0].data savepath = ProcessedPath + objectname if not os.path.exists(savepath): os.makedirs(savepath) bndbox = objects.getElementsByTagName(’bndbox’) cropboxes = [] 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) w = x2 - x1 h = y2 - y1 obj = np.array([x1,y1,x2,y2]) shift = np.array([[1,1,1,1]]) XYmatrix = np.tile(obj,(1,1)) cropboxes = XYmatrix * shift img = Image.open(imgfile) for cropbox in cropboxes:cropedimg = img.crop(cropbox)cropedimg.save(savepath + ’/’ + image_pre + ’_’ + str(i) + ’.jpg’)i += 1

以上這篇Python 讀取xml數據,cv2裁剪圖片實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
主站蜘蛛池模板: 软膜天花_软膜灯箱_首选乐创品牌_一站式天花软膜材料供应商! | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 密集柜_档案密集柜_智能密集架_密集柜厂家_密集架价格-智英伟业 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 柔性输送线|柔性链板|齿形链-上海赫勒输送设备有限公司首页[输送机] | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 房间温控器|LonWorks|海思 | 板框压滤机-隔膜压滤机配件生产厂家-陕西华星佳洋装备制造有限公司 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 展厅设计-展馆设计-专业企业展厅展馆设计公司-昆明华文创意 | VOC检测仪-甲醛检测仪-气体报警器-气体检测仪厂家-深恒安科技有限公司 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 西安中国国际旅行社(西安国旅) | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | 博博会2021_中国博物馆及相关产品与技术博览会【博博会】 | 回收二手冲床_金丰旧冲床回收_协易冲床回收 - 大鑫机械设备 | 半容积式换热器_北京浮动盘管换热器厂家|北京亿丰上达 | 海鲜池-专注海鲜鱼缸、移动海鲜缸、饭店鱼缸设计定做-日晟水族厂家 | 早报网| 小程序开发公司-小程序制作-微信小程序开发-小程序定制-咏熠软件 | 气体热式流量计-定量控制流量计(空气流量计厂家)-湖北南控仪表科技有限公司 | 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 厌氧工作站-通用型厌氧工作站-上海胜秋科学仪器有限公司 | 宿松新闻网 宿松网|宿松在线|宿松门户|安徽宿松(直管县)|宿松新闻综合网站|宿松官方新闻发布 | 哈希PC1R1A,哈希CA9300,哈希SC4500-上海鑫嵩实业有限公司 | HDPE土工膜,复合土工膜,防渗膜价格,土工膜厂家-山东新路通工程材料有限公司 | 广东风淋室_广东风淋室厂家_广东风淋室价格_广州开源_传递窗_FFU-广州开源净化科技有限公司 | 旋片真空泵_真空泵_水环真空泵_真空机组-深圳恒才机电设备有限公司 | 钢骨架轻型板_膨石轻型板_钢骨架轻型板价格_恒道新材料 | 萃取箱-萃取槽-PVC萃取箱厂家-混合澄清槽- 杭州南方化工设备 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | FAG轴承,苏州FAG轴承,德国FAG轴承-恩梯必传动设备(苏州)有限公司 | 华东师范大学在职研究生招生网_在职研究生招生联展网 | 铝扣板-铝方通-铝格栅-铝条扣板-铝单板幕墙-佳得利吊顶天花厂家 elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 3A别墅漆/3A环保漆_广东美涂士建材股份有限公司【官网】 |