> 文章列表 > Python_npy文件与png图片的格式转换

Python_npy文件与png图片的格式转换

Python_npy文件与png图片的格式转换

  npy文件是以数组形式保存图片数据,我们有时再进行训练时,可能需要将其进行图片格式的转换,废话不多说,直接上代码:

import numpy as np
import imageio
import os
from skimage import img_as_ubyte
dest_dir_rgb = "./A"  # 文件存储的路径
dest_dir_gray = "./B"  # 文件存储的路径
picture_rgb = np.load('A.npy')    #使用numpy载入npy文件,里面存放的是RGB图片
picture_gray = np.load('B.npy')    #使用numpy载入npy文件,里面存放的是灰度图片
print(picture_rgb.shape)
print(picture_gray.shape)
# RGB图片归一化处理
picture_rgb = picture_rgb.reshape(picture_rgb.shape[0], 256, 256, 3)
picture_rgb = picture_rgb.astype('float32')
picture_rgb = picture_rgb/255.
# 将图片保存在dest_dir_rgb文件夹下
for i in range(0,m):imageio.imwrite(os.path.join(dest_dir_rgb, "{}.png".format(i)),img_as_ubyte(picture_rgb[i]))
# 灰度图片归一化处理
picture_gray = picture_gray.reshape(picture_gray.shape[0], 256, 256, 1)
picture_gray = picture_gray/picture_gray.max()
# 将灰度图片保存在dest_dir_gray文件夹下
for i in range(0,n):imageio.imwrite(os.path.join(dest_dir_rgb, "{}.png".format(i)),img_as_ubyte(picture_rgb[i]))

  注意:
  1、先通过print(map.shape)查看数组尺寸,比如说[120][256][256][3],我们知道这个npy文件里保存的是120张256*256大小的RGB图片;
  2、上述代码中的m、n就是指的图片数量;
  3、RGB图片与灰度图片的归一化处理有些许差异。