通过opencv根据坐标绘制图片框,然后保存图片
import xml.etree.ElementTree as ET #用于读取xml文件
import os, cv2
annota_dir = r'./train/train2021/Annotations/'
img_dir = r'./train/train2021/JPEGImages/'
def divide_img(oriname):
img_file = os.path.join(img_dir, oriname + '.png')
im = cv2.imread(img_file) #cv读取图片
print(oriname)
xml_file = os.path.join(annota_dir, oriname + '.xml') # 读取每个原图像的xml文件
print(xml_file)
tree = ET.parse(xml_file)
root = tree.getroot()
for object in root.findall('object'):
object_name = object.find('name').text
if(object_name == 'with_mask'):
color = (20, 250, 27)
elif(object_name == 'without_mask'):
color = (27,24,250)
else:
color = (20, 250, 250)
Xmin = int(object.find('bndbox').find('xmin').text)
Ymin = int(object.find('bndbox').find('ymin').text)
Xmax = int(object.find('bndbox').find('xmax').text)
Ymax = int(object.find('bndbox').find('ymax').text)
cv2.rectangle(im, (Xmin, Ymin), (Xmax, Ymax),color, 2)
font = cv2.FONT_HERSHEY_SIMPLEX #选择字体
#cv2.putText(im, object_name, (Xmin, Ymin - 7), font, 0.5, color, 2)
#cv2.imshow('01', im)
cv2.waitKey(0)
cv2.imwrite(r'./trainlabel/'+oriname+'.png',im) #保存图片
img_list = os.listdir(img_dir) #读入文件列表
print(img_list)
for name in img_list:
divide_img(name.rstrip('.png')) #删除字符串末尾的.png
通过结果写入Excel中
import xlsxwriter
import os, cv2
w = 'D:\\tensorflowstudydata\\saiti\\daima\\ppyolov2\\PaddleDetection\\output\\data\\'
annota_dir = os.listdir(w)
f = xlsxwriter.Workbook('data.xlsx')
sheet = f.add_worksheet('sheet1') #添加工作表
i = 0
k = 0
for q in annota_dir:
path = w+q
f1 = open(path,'r',encoding='gbk')
lines = f1.readlines()
for line in lines:
print(line)
sheet.write(i,k,str(line).split(" ")[0]) #通过横纵坐标控制单元格
i = i + 1
k+=1
i=0
f.close()
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
Python rstrip() 删除 string 字符串末尾的指定字符(默认为空格)
Python rstrip() 删除 string 字符串头的指定字符(默认为空格)
str = "888888888888kkk kkkkisisisisiisisisikkk kkkk8888888888888888"
str1 = " op "
str1 = str1.strip()
print(str1) #op
str = str.rstrip("8")
print(str)
str = str.lstrip("8")
print(str)
#结果:
#op
#888888888888kkk kkkkisisisisiisisisikkk kkkk
#kkk kkkkisisisisiisisisikkk kkkk
完结撒花!!!