我的图片命名格式是 1.jpg , 2.jpg ......,如果格式不同需要自己根据需要改代码。
import cv2
import os
DIR = "./Images"
DEDIR = "./Deimages"
def getImages_list(img_dir,img_list,ext=None) :
img_num = 0
img_name_list = []
'''
遍历目录下所有jpg图片
:param dir: 文件夹根目录
:param Filelist:
:param ext: 扩展名
:return:返回图片地址列表
'''
image_files = os.listdir(img_dir)
image_files.sort(key=lambda x:int(x.split('.')[0]))
print(image_files)
for image_file in image_files:
if image_file.endswith('.jpg'):
# img_num += 1
img_list.append(img_dir+"/"+image_file)
img_name_list.append(image_file)
return img_list ,img_name_list
def resized_img(source_dir , destination_dir,resize):
'''
将源地址下所有的图片 修改大小后 写在目的地址下
:param source_dir: 源地址
:param destination_dir: 目标地址
:param resize: 修改大小大小 类型为元组(128,128)
:return: none
'''
img_dir = []
img_name_dir = []
img_dir ,img_name_dir = getImages_list(source_dir,img_dir)
# print(img_dir)
x,y = resize
for img_name in img_dir :
img = cv2.imread(img_name, -1)
# 打印原始图片的shape
# print('Original Dimensions : ', img.shape)
# 更改size
img2 = cv2.resize(img, (x, y), interpolation=cv2.INTER_AREA)
# print(img_name.split("/")[3])
# print('Resized Dimensions : ', img2.shape)
# d = destination_dir+ "/"+img_name.split('/')[2].split('.')[0] +".jpg"
d = destination_dir + "/" + img_name.split("/")[3]
cv2.imwrite(d, img2)
print(d)
print("写入成功--------------------------------------")
if __name__ == '__main__':
shape = (96,96)
sdir="./data/anime"
ddir="./Images"
resized_img(sdir,ddir,shape)