python图片处理

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 os
from PIL import Image
import random
image_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)               

生成的结果如下图


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值