#读取文件夹中的所有图像,并按顺序读取(例如1.bmp 2.bmp 3.bmp……….)
import os
from PIL import Image
import numpy as np
#读取文件夹GN下的200张图片,图片为彩色图像,所以为3通道,
data = np.empty((200, 256, 256, 3),dtype="float32")
label = np.empty((1800,),dtype="uint8")
imgs = os.listdir("/home/shuang/Documents/SCID/GN")
num = len(imgs)
for i in range(num):
img = Image.open("/home/shuang/Documents/SCID/GN/%d"%(i+1)+".bmp")
print("/home/shuang/Documents/SCID/GN/%d"%(i+1)+".bmp")
arr = np.asarray(img,dtype="float32")
data[i,:,:,:] = arr[0:256, 0:256, :]
#提取左上角256*256大小的图像块
#Python Numpy数组保存方式
Numpy提供了几种数据保存的方法。
以3*4数组a为例
a.tofile("filename.bin")
这种方法只能保存为二进制文件,且不能保存当前数据的行列信息,文件后缀不一定非要是bin,也可以为txt,但不影响保存格式,都是二进制。
这种保存方法对数据读取有要求,需要手动指定读出来的数据的的dtype,如果指定的格式与保存时的不一致,则读出来的就是错误的数据。
b = numpy.fromfile("filename.bin",dtype = **)
读出来的数据是一维数组,需要利用
b.shape = 3,4 #重新指定维数。
numpy.save("filename.npy",a)
利用这种方法,保存文件的后缀名字一定会被置为.npy,这种格式最好只用 numpy.load("filename")
来读取
numpy.savetxt("filename.txt",a)
b = numpy.loadtxt("filename.txt")
用于处理一维和二维数组