python处理图像的相关程序

来源:互联网 发布:劳动法律师事务所知乎 编辑:程序博客网 时间:2024/06/06 03:51

#读取文件夹中的所有图像,并按顺序读取(例如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")

用于处理一维和二维数组