python图像处理PIL实例之读取图片

python图像处理PIL实例之读取图片

"""
读取图片实例
"""
from PIL import Image
import numpy as np
import os
import pickle
# 读取图片的目录
img_dir1='./images/'
# 保存图片的目录
img_dir2='./storage/'
# 保存数组的文件
array_file ='./array.bin'
# 2.读取图片,将图片保存成大的一维数组,将数组保存到文件
def image_array_file():
    # 获取所有图片的名称
    imgnames=os.listdir(img_dir1)
    # 定义变量保存所有图片的数组
    img_array = np.array([])
    print(imgnames)
    for imgname in imgnames:
        # 读取图片
        img=Image.open(img_dir1+imgname)
        # 将每张图片进行通道分割
        r,g,b=img.split()
        print(r)
        # 将r g b转换为一维数组
        r_array=np.array(r).reshape(40000)
        g_array =np.array(g).reshape(40000)
        b_array =np.array(b).reshape(40000)
        # 将r_array,g_array,b_array拼接为一维数组
        arrs=np.concatenate((r_array,g_array,b_array))
        img_arrays=np.concatenate(arrs,img_array)
    # 将一维数组保存到文件
    with open(array_file,'wb') as f:
        pickle.dump(img_arrays,f)

# 读取文件内容,转换图片
def file_image():
    with open(array_file,'rb') as f:
        images=pickle.load(f)
        #一维数组存放9张图片,3个通道,尺寸:250,250
        ima_arr=images.reshape(9,3,250,250)
    for i in range(9):
        r=Image.fromarray(ima_arr[i][0].convert('L'))
        g=Image.fromarray(ima_arr[i][1].convert('L'))
        b=Image.fromarray(ima_arr[i][2].convert('L'))
    # 合并图片
    image=Image.merge('RGB',(r,g,b))
    image.save(img_dir2+'.png')
file_image()



  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值