利用PIL实现图像的缩放、重命名、格式转换。
# -*- coding: utf-8 -*-
"""
Created on Thu Sep 13 15:16:37 2018
实现图像大小变换,重命名(1-n),tif、png 、jpg格式转换(只需要改变35行的文件后缀)
@author: CodeTi
"""
from PIL import Image
import os
train_file = 'train'
label_file = 'label'
resizeshape = (576,576)
def building_datasets(filename,resizeshape):
filename_resize = filename+str(resizeshape[0])
os.system('mkdir '+ filename_resize)
filelist = os.listdir(filename)
print(filelist)
imagelist = [img for img in filelist if img[-4:] in ['.jpg','png','.tif']] #确认是图像文件
print(imagelist)
if imagelist is []:
print('There is no image! Check it')
else:
print('There are {0} images'.format(len(imagelist)))
for i in range(len(imagelist)):
img = Image.open(filename+'/'+imagelist[i])
#此处视具体需求而定
x = img.size[0] #以图像高度为参照,剪取正方形的图像。
y = img.size[1]
box = (x//2-y//2,0,x//2+y//2,y) #分别表示图片的左、上、右、下的位置
img = img.crop(box) #复制图片某一区域的命令
#
new_img = img.resize(resizeshape)
new_img.save(filename_resize+"/"+str(i+1)+'.jpg')
building_datasets(train_file,resizeshape)
building_datasets(label_file,resizeshape)
此外还可以利用os模块进行重命名。
import os
os.rename(filename+'/'+oldname, filename+'/'+ newname +'.jpg')