将图片转化为矩阵并存储在文本中

将图片转化为矩阵并存储在文本中

1.   \11\zheng_chang文件夹下的图片(256*256)如下图所示:

2.   将zheng_chang文件夹下所有的图片转化为矩阵,详细代码如下:

import os
import numpy as np
from PIL import Image
from pylab import *

#此函数读取特定文件夹下的jpg格式图像地址信息,存储在列表中
def get_imlist(path):
    return [os.path.join(path,f) for f in os.listdir(path) if f.endswith('.jpg')]

# r""是防止字符串转译
# c=['zheng_chang\\1.jpg', 'zheng_chang\\2.jpg', 'zheng_chang\\3.jpg']  以list形式输出jpg格式的所有图像(带路径)

c=get_imlist(r"zheng_chang")
d=len(c)    # 图像个数
data=np.empty((1,256*256*3)) # 建立d*(1,256*256*3)的随机矩阵

# 遍历每张图片
for i in range(d):
    img = Image.open(c[i])  # 打开图像
    img_ndarray = np.asarray(img, dtype='float64') / 256  # 将图像转化为数组并将像素转化到0-1之间
    data = np.ndarray.flatten(img_ndarray)  # 将图像的矩阵形式转化为一维数组保存到data中
    A=np.array(data).reshape(256,256*3)   # 将一维数组转化为矩阵
    savetxt('0_%d.txt'%i,A,fmt="%.2f",delimiter=',') # 进行存储保存为两位小数,数据以","为间隔

#savetxt('0_%d.txt',A,fmt="%.0f") #将矩阵保存到txt文件中转化为二进制0 1 存储

3.  图片转化后生成的TXT文件如下图所示:


4.  读取TXT文件将(256,256*3)矩阵转化为(1,196608),程序如下所示:

def txtMat2vector(filename):
    data = np.loadtxt(filename, delimiter=',')
    z = data.reshape(1, 196608)
    return z
print(img2vector('0_0.txt'))

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值