<span style="font-size:24px;">#功能描述:读取一个txt文件,选择其中w,h大于阈值的,存入另一个txt文件中
# -*- coding:utf-8 -*-
import sys
sys.path.append('E:\\Anaconda\\libs')
import numpy as np #numpy:提供矩阵运算功能的库
import cv2 #cv2:opencv库
import os #os:操作系统相关的信息模块
#待处理图片名及人脸区域(x,y,w,h)的txt文件地址
read_file_name_rect = "C:\\Users\\Administrator.MICROSO-1HCAN56\\Desktop\\VOC2007xml_face_faster_rcnn\\annotate.txt"
file_list = []
#输出图片名及人脸区域(x,y,w,h)的txt文件地址
write_file_name = 'C:\\Users\\Administrator.MICROSO-1HCAN56\\Desktop\\VOC2007xml_face_faster_rcnn\\11.txt'
write_file = open(write_file_name, "w") #以只写方式打开write_file_name文件
# =========== read rect file ===============
with open(read_file_name_rect, "r") as ins: #以只读方式打开文件read_file_name_rect,并将其赋值给ins
array_rect = [] #定义一个空列表,读文件中每行,作为其一个元素
for line in ins: #依次读ins中每个元素
array_rect.append(line) #将line元素,添加到列表array_rect最后
array_rect = array_rect[1:] # 切片,舍弃第0个,从第1个取到最后一个
number_of_lines = len(array_rect) #取列表长度,即列表中有多少个元素。
print "number_of_lines:", number_of_lines #输出列表元素个数
# =========== Start processing ===============
for current_rect in range(0, number_of_lines): #current_rect依次取值0,1,2.....number_of_lines-1
if current_rect % 100 == 0: #每100次输出一次
print "Processing rect number " + str(current_rect)
current_info = array_rect[current_rect].split() #在列表中,以空格为界,对字符串进行切片处理
current_image_name = current_info[0] #图片名
#(x,y)表示图片左上角坐标,w表示宽,h表示高
x = max(0, int(current_info[1]))
y = max(0, int(current_info[2]))
w = int(current_info[3])
h = int(current_info[4])
if (w >= 80 and h >= 100):
file_list.append(array_rect[current_rect])
number_of_face = len(file_list) #列表中元素个数
#将图片信息写入txt文件中,逐行写入
for current_line in range(number_of_face):
write_file.write(file_list[current_line])
#关闭文件
write_file.close()</span>
python 实现txt文件转txt文件 windows下
最新推荐文章于 2023-08-31 22:54:58 发布