在平时的学习和生活中总会把一些基本处理的结果放到txt文档里,如下图所示:
比如前面的是路径,后面的是对应图像的定位。如何一一对应把图像批处理呢?
如下代码:
import os
import matplotlib.pyplot as plt
import pylab
import matplotlib.patches as patches %这几个import是我做中间过程用到的
from scipy import misc
import cv2
import numpy as np
f=open(r"/media/bigvision/Data/HXD_DR/DR_53576_cutblack_pingheng/train/train/1_quzheng.txt","r") #打开你自己的路径
line=f.readline() #按行读取
while line:
list1=line.split()[0] #picture path,用split()函数可以把字符串按空格or Tab自动分开,具体可以去查
pic_path=line[70:].split()[0] #主要得到文件名,可以写死也可以不写死
img=cv2.imread(list1)
# input()
x1=int(line.split()[1])
y1=int(line.split()[2]) #(x1,y1) is left_top location
x2=int(line.split()[3])
y2=int(line.split()[4]) #(x2,y2)is right_down location #分别存储2个坐标值,存入列表
img[y1:y2,x1:x2,:]=np.zeros((y2-y1,x2-x1,3)) #坐标范围内的处理,我做的是ROI区域像素置0.
cv2.imwrite('/media/bigvision/Data/HXD_DR/DR_53576_cutblack_pingheng/train/train/1_cutshipan/' + pic_path,img) # pic_path.png'
# print pic_path
line=f.readline() #读取下一行
f.close()
由于是新手,在坐标范围内处理的时候置0没用用np.zeros(),导致耽误不少时间,其次对于三通道图像,一定要有通道参数,否则会报错