版权声明:本文为博主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), )