python图片处理

来源:互联网 发布:mac怎么安装axure 编辑:程序博客网 时间:2024/06/11 02:55

matplotlib 和 PIL 两个库可以对图片操作,包括读取转换显示保存图片

http://www.cnblogs.com/yinxiangnan-charles/p/5928689.html

使用skimage中的io模块对图片进行输入输出操作

http://www.cnblogs.com/denny402/p/5121897.html

对图片进行批处理,包括批量读取,保存,处理图片

http://www.cnblogs.com/denny402/p/5123772.html

对图片文件操作,包括提取文件夹下的所有图片,及切分名称和后缀

http://www.codexiu.cn/python/blog/155/


在caffe中为数据集打上标签

import osfrom PIL import Imageimport randomimage_root = '/home/ubuntu1404/caffe/data/CUHK01/campus/'train_root = '/home/ubuntu1404/caffe/data/CUHK01/train/'test_root  = '/home/ubuntu1404/caffe/data/CUHK01/test/'label_root = '/home/ubuntu1404/caffe/examples/person_re/'dirs = os.listdir(image_root) #读取image_root路径下的所有图片#将文件按文件名从小到大排序,-4的意思后缀往前移4位,只按名称顺序dirs = sorted(dirs, key = lambda x:int(x[:-4])) n         = 4             #每个人4张图片num       = len(dirs)     #数据集总共的图片数量num_class = num/4         #共有num_class类#将数据集分成测试集和验证集并打上标签for i in range(num_class):    lists = dirs[n*i:n*(i+1)]    random.shuffle(lists)    for train_data in lists[:-1]:  #测试集,随机取3张    image     = train_data.split('.')        new_name  = str(int(image[0]))+'.'+image[1]        label     = int(image[0])/1000        train_txt = open(label_root+'train.txt','a')        content   = 'train/'+new_name+' '+str(label)+'\n'        train_txt.write(content)        train_txt.close()        img = Image.open(image_root+'/'+train_data)        img.save(train_root+'/'+new_name)  #图片保存到不同路径    for test_data in lists[-1:]:  #验证集,剩下一张        image     = test_data.split('.')        new_name  = str(int(image[0]))+'.'+image[1]        label     = int(image[0])/1000        test_txt  = open(label_root+'test.txt','a')        content   = 'test/'+new_name+' '+str(label)+'\n'        test_txt.write(content)        test_txt.close()        img = Image.open(image_root+'/'+test_data)        img.save(test_root+'/'+new_name)               

生成的结果如下图


原创粉丝点击