读取照片,显示照片, Resize,保存照片方法

版权声明:本文为博主CSDN Rosefun96原创文章。 https://blog.csdn.net/rosefun96/article/details/88825446

1.读取

1.1 Keras读取
使用np.array来存储照片

import numpy as np
from keras.preprocessing.image import load_img
train = [np.array(load_img("./data/mg/img_{}.jpg".\
                format(idx), grayscale = False))/255 for idx in range(10)]

这里读取三维照片,grayscale设置为False.

2.显示照片

2.1使用 pylab包

pylab.imshow(train[0])
pylab.show()

在这里插入图片描述

2.2 matplotlib形式
这里是有两个数据集,一个train,及其标签mask集:

import matplotlib.pyplot as plt
def showPic(max_images = 8, grid_width = 2):
    grid_height = int(max_images / grid_width)
    fig, axs = plt.subplots(grid_height, grid_width, figsize = (5*grid_width, 5*grid_height))
    for i in range(8):
        img = train[i]
        _mask = mask[i]
        ax = axs[int(i/grid_width), i%grid_width]
        ax.imshow(img, cmap= "Greys")
        ax.imshow(_mask, alpha = 0.3, cmap = "Greens")
showPic()

效果就是并排的方式:
在这里插入图片描述

3 resize

3.1 使用skimage包

from skimage.transform import resize
resizeTrain = []
for i in range(len(train)):
    resizeTrain.append(resize(train[i], (128,128,3),mode = 
            'constant', preserve_range = True))
pylab.imshow(resizeTrain[k])
pylab.show()

在这里插入图片描述
尺寸是发生了变化。

3.2 使用Keras包 load_img
指定target_size.

from keras.preprocessing.image import load_img
train = [np.array(load_img("./data/seg_data_02_01/number_segment_1/img/img_{}.jpg".\
                           format(idx), target_size=(320,320),grayscale = False))/255 for idx in range(10)]

4 save Image

4.1 PIL 包保存照片

from PIL import Image
im = Image.fromarray(tmp2)
im.save("your_file.png")

4.2 Pytorch保存照片

Pytorch这里需要像素在0-1之间,因为它的包已经有*255的操作。

for i, (inputs) in enumerate(test_generator):
    pred = modelPl(inputs.float()).detach()
    torchvision.utils.save_image(pred, saveTestPath + 'img_{0}.png'.format(i), )   

猜你喜欢

转载自blog.csdn.net/rosefun96/article/details/88825446