# -*- coding: utf-8 -*-
# liufangtao
#批量处理img和xml文件,根据xml文件中的坐标把img中的目标标记出来,并保存到指定文件夹。
import xml.etree.ElementTree as ET
import os, cv2
import numpy
# from tqdm import tqdm
from PIL import Image, ImageDraw, ImageFontannota_dir = r'\ann\atxt' #txt文件夹
origin_dir = r'\testjyz\ann\bimages'  #图片文件夹
target_dir1= r'\testjyz\ann\cresult'  #保存地址class_dist = {0:'盘式绝缘子', 1:'棒式绝缘子', 2:'复合绝缘子', 3:'柱上开关绝缘子', 4:'针式绝缘子', 5:'玻璃绝缘子',6:'悬式棒绝缘子'}def divide_img(oriname):img_file = os.path.join(origin_dir, oriname + '.jpg')im = cv2.imread(img_file)h, w = im.shape[:2]# print(w)# 图像从OpenCV格式转换成PIL格式 img_PIL = Image.fromarray(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))draw = ImageDraw.Draw(img_PIL)#字体路径和字体大小font = ImageFont.truetype('SimHei.ttf', 40) xml_file = open(os.path.join(annota_dir, oriname + '.txt'))  # 读取每个原图像的xml文件# print(xml_file)for bbox in xml_file.readlines():id, x1, y1, x2, y2 = float(bbox.split(' ')[0]), float(bbox.split(' ')[1]), float(bbox.split(' ')[2]), float(bbox.split(' ')[3]), float(bbox.split(' ')[4])xmin = ((x1*2*w)-x2*w)/2xmax = ((x1*2*w)+x2*w)/2ymin = ((y1*2*h)-y2*h)/2ymax = ((y1*2*h)+y2*h)/2# print(xmin, ymin, xmax, ymax)# cv2.rectangle(image, (x1, y1), (x2, y2), (0, 0, 255), 2)# 在边界框的两点(左上角、右下角)画矩形,无填充,边框红色,边框像素为5draw.rectangle(((xmin, ymin), (xmax, ymax)), fill=None, outline='red', width=5)draw.text((xmin, ymin-40), class_dist[id], font=font, fill=(0, 255, 0))       # 转换回OpenCV格式 img_OpenCV = cv2.cvtColor(numpy.asarray(img_PIL),cv2.COLOR_RGB2BGR) img_name = oriname + '.jpg'print(img_name)to_name = os.path.join(target_dir1, img_name)cv2.imwrite(to_name, img_OpenCV)img_list = os.listdir(origin_dir)for name in img_list:divide_img(name.rstrip('.jpg'))

python将txt坐标批量打印到原图上相关推荐

  1. python在当前目录创建txt文件-python根据txt文本批量创建文件夹

    前言 前言:想写这个代码的原因是因为实习的时候需要根据表格名创建对应的文件夹,如果只是很少个数文件夹的话,ctrl+shift+n还可以接受吧,可是一次就要创建几百个文件夹,这就有点方方了.所以我写了 ...

  2. Python将txt文本批量转化为xlsx格式

    Python将txt文本批量转化为xlsx格式 # # -*- encoding: utf-8 -*- # # -------------------------------------------- ...

  3. 使用python读取txt坐标文件生成挖空矿山_探矿批量

    # -*-coding:utf-8-*- import arcpy import fileinput import os # 探矿权坐标格式举例 # 111.0846,31.1530 # 111.10 ...

  4. python读取坐标文本文件_使用python读取txt坐标文件生成挖空矿山_探矿批量

    # -*-coding:utf-8-*- import arcpy import fileinput import os # 探矿权坐标格式举例 # 111.0846,31.1530 # 111.10 ...

  5. Python实现将坐标点绘制到地图上

    Python绘制点位在地图上 效果图 源码 有时我们需要直观地看到坐标点位在全球的分布情况,因此有将坐标点绘制到地图上的需求,我们可以用python实现这个功能 效果图 效果图只是进行了简易配置的结果 ...

  6. python根据txt文本批量创建文件夹

    前言 前言:想写这个代码的原因是因为实习的时候需要根据表格名创建对应的文件夹,如果只是很少个数文件夹的话,ctrl+shift+n还可以接受吧,可是一次就要创建几百个文件夹,这就有点方方了.所以我写了 ...

  7. python从txt中批量读取图片名后将图片另存为

    我们在做深度学习的时候几乎都需要用到txt文件,还有对应的图片名,这个时候如果数据就几十个还好,如果再增多的话,我们就受不了了,下面我就记录顺便保存一下代码 txt_file="C:\\Us ...

  8. python将txt文件批量导入excel

    txtname = 'G:/202008.txt'#txt路径 excelname = 'C:/Users/123/Desktop/202008.xls'#要保存的excel路径fopen = ope ...

  9. python实现txt文件批量格式互转

    import os import codecs#txt文件所在目录 path = input("Please input the file path:\n")if len(path ...

最新文章

  1. 【网络安全】一些webshell免杀的技巧
  2. cve-2015-0569 安卓手机提权ROOT漏洞 分析
  3. menuetos oracle,使用DistroTest服务免费在线测试Linux和Unix操作系统
  4. 树莓派外设开发之控制继电器(组)
  5. TensorFlow基本计算单元——变量
  6. 【转】1.3异步编程:线程同步基元对象
  7. 【matlab】找出数组中符合条件的数并赋值
  8. 软件测试工程师-HTML
  9. zentaoPHP学习
  10. agx 安装ros opencv_Linux下配置深度学习开发环境(及ros)
  11. 第2章_Java基本语法(下):程序流程控制
  12. java apns ssl错误_无法使用Javapns/Javaapns SSL握手失败发送推送通知
  13. AI智能写作指导:Wordhero AI写作英语长文流程
  14. maven 配置阿里云仓库
  15. 【大数据处理技术】实验7(推荐林子雨老师的教程)
  16. 电脑数据丢失没有备份怎么找回?
  17. 蓝牙Socket通讯
  18. SQLSERVER2012 保存阿拉伯文字乱码的问题
  19. 记录学习《流畅的python》的一些知识-----对象引用,可变性和垃圾回收
  20. 【python--爬虫】爬取淘女郎照片

热门文章

  1. 电视行业迎来市场“拐点” TCL曲面电视表现最为抢眼
  2. https证书存在错误该怎么解决
  3. 跨境电商卖家应该知道的3个社交媒体营销策略
  4. windows android ios,如何将你的Android / iOS设备连接到Windows 10
  5. Photoshop设计网站原型图
  6. oracle读取数据方式,关于oracle数据库读取数据的三种方式
  7. Android OpenCV应用篇三:提取图片中的文字
  8. 手机里tencent文件夹能删吗_手机上的文件夹能不能删?看完之后秒懂
  9. 团队任务3每日立会(2018-10-25)
  10. RISC-V_GD32VF103-ADC 模数转换 电压采集