我们之前实现了如何用python批量修改图片的名称,不清楚的同学可以看一下这一篇:
python批量修改一个文件夹下含多个文件夹中的所有图片名称(代码)
接下来我们来看一下如何生成带图片名称和标签的txt文件
因为我们在用caffe进行分类训练时,不管是生成imdb还是直接拿图片训练,都是需要标签文件的
话不多说,直接上代码:
#!/usr/bin/python
# -*- coding:utf-8 -*-
import os
def generate(dir,label):
files = os.listdir(dir)
files.sort()
print '****************'
print 'input :',dir
print 'start...'
listText = open('all_list.txt','a')
for file in files:
fileType = os.path.split(file)
if fileType[1] == '.txt':
continue
name = file + ' ' + str(int(label)) +'\n'
listText.write(name)
listText.close()
print 'down!'
print '****************'
outer_path = '/home/lincanran/cls_exp/place100' #这里是你的图片的目录
if __name__ == '__main__':
i = 0
folderlist = os.listdir(outer_path) #列举文件夹
for folder in folderlist:
generate(os.path.join(outer_path, folder),i)
i += 1
具体操作:
1.新建一个 turn_to_list_many.py 文件,然后把上面的代码复制进来;
2.记得把
outer_path = '/home/lincanran/cls_exp/place100'
改成自己的文件夹目录的地址,然后保存;;
3.在终端输入:
python turn_to_list_many.py
![](https://img-blog.csdn.net/20180822170523848?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NDUxMTE5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
生成成功,我们可以在目录下看到多了一个 all_list.txt文件:
![](https://img-blog.csdn.net/2018082217061043?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NDUxMTE5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
打开该文件:
![](https://img-blog.csdn.net/20180822170720173?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NDUxMTE5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
每一行是一个样本,然后用一个空格隔开,后面是它的标签
我这边一共是100个类(0-99的标签),然后每个类1500张图片,所以总数是150000,没有问题!!!
![](https://img-blog.csdn.net/20180822170753450?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NDUxMTE5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
<