批量转存子文件夹图像or生成不同尺寸图像

'''
功能1:把所有子文件夹下的图像转存到另一位置
功能2:生成不同尺寸的图像
'''

import glob
import skimage
from skimage import io,transform
import os
import numpy as np

# *代表全部文件,*.png,*pdf,*jpg 可以选中特定类型
# 示例:'C:\Users\mayuhua\Desktop\*\*.png' 桌面所有子文件夹内的png图像
input = r'E:\深度学习-数据集\NR数据集-中子projection\A原图\*.tif'    # 选取文件,加上\*.tif
output = r'E:\深度学习-数据集\NR数据集-中子projection\bicubic-train-64x64'       # 输出路径
scale = 1   # 修改图像尺寸: 0.25为宽高都缩小至四分之一,4为宽高都放大4倍

path_list = glob.glob(input)   # 图像路径列表。
for path in path_list:
    print(path)   # 图像路径
    base_name = os.path.basename(path) ; print(base_name)            #文件名 name.tif
    # base_name = os.path.splitext(base_name)[0] ; print(base_name)  #文件名(无后缀) name
    path_out = output+'\\'+base_name ; print(path_out)               #输出路径   C:\Users\···\UCMerced_LandUse-图片集合\name.tif

    img = io.imread(path)                           # 读取
    #img_out = transform.rescale(img, scale=scale, order=3)   # rescale,order=3双三次插值bicubic
    img_out = transform.resize(img, (64,64), order=3)    # order=3双三次插值bicubic。建议resize成相同尺寸,才能设置batch_size>1。合理范围内,较大的batch_size才能使loss收敛。

    '''保存'''
    img_out = np.array(img_out, dtype=np.float32)   # tif图片:需要由float64改为float32才能预览。png/jpg等格式,注释掉此行。
    io.imsave(path_out, img_out)                    # 保存


你可能感兴趣的:(图像处理,python)