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

本文介绍了使用Python进行图片处理的基本流程,包括使用Keras和PIL等库读取图片、利用matplotlib和pylab展示图片、通过skimage及Keras调整图片大小以及如何保存处理后的图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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), )   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rosefunR

你的赞赏是我创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值