参考1:https://blog.csdn.net/xunan003/article/details/73741797
参考2:https://blog.csdn.net/m0_37477175/article/details/78901938
1、python版
def createFileList(image_path1,image_path2,txt_save_path):
#打开图片列表清单txt文件
fw=open(txt_save_path,"w")
#查看图片目录下的文件,相当于shell下的ls
image_dir1=os.listdir(image_path1)
image_dir2=os.listdir(image_path2)
image_dir={image_dir1,image_dir2}
for image_name in image_dir:
for eachname in image_name:
#正则表达式规则:face跟0到299的数字,并以jpg结尾的图片文件
parttern_face=r'(^face\d{0,299}.jpg$)'
parttern_airplane=r'(^airplane\d{0,299}.jpg$)'
#正则表达式匹配
face_name=re.search(parttern_face,eachname)
airplane_name=re.search(parttern_airplane,eachname)
#按规则将内容写入txt文件中
if face_name != None:
fw.write(face_name.group(0)+" 1\n")
if airplane_name != None:
fw.write(airplane_name.group(0)+" 0\n")
print("generate txt file successfully")
fw.close()
image_path_1='/home/xu/caffe/data/mydata/train1/'
image_path_2='/home/xu/caffe/data/mydata/train0/'
txt_save_path='/home/xu/caffe/data/mydata/train_label.txt'
createFileList(image_path_1,image_path_2,txt_save_path)
2、shell版
生成带绝对路径的train.txt
# /usr/bin/env sh
DATA=/home/ttwang/Desktop/Texture/0
DATASAVE=/home/ttwang/Desktop
echo "Create train.txt..."
# /usr/bin/env sh
find $DATA -name Grass*.jpg | sed "s/$/ 1/" >>$DATASAVE/train.txt
echo "Done.."
# /usr/bin/env sh
DATA=/home/ttwang/Desktop/Texture/1
DATASAVE=/home/ttwang/Desktop
echo "Create train.txt..."
# /usr/bin/env sh
find $DATA -name Road*.jpg | sed "s/$/ 1/" >>$DATASAVE/train.txt
echo "Done.."
然后,运行脚本:sh 1.sh / sh 2.sh (假设脚本文件名为这个),就行了!
如果不想显示那么多路径,就相应该DATA路径的表示,或者使用cut 具体参考(用到时再细看)