这里介绍的仅仅是深度学习中常用的操作:
#read and save images operations import os import glob import random from scipy import misc import numpy as np import time image_dir = r"C:\Users\Administrator\Desktop"; file_glob = os.path.join(image_dir,"images","training","*.jpg") file_list = [] #将符合条件的jpg文件路径读取到file_list中去 file_list.extend(glob.glob(file_glob)) print(file_list[::]) print("-----------------------------------------------------------") #将file_list中的文件路径进行乱序,打乱顺序 random.shuffle(file_list) print(file_list[::]) def read_andtransform(filename): image = misc.imread(filename) #将图像尺寸矫正到[100,100]大小 resize_image = misc.imresize(image,[220,220],interp = "nearest", mode = "RGB") #保存图像操作1 #使用imsave直接保存image对象 #path = "C:\\Users\\Administrator\\Desktop\\images\\res\\"+str(int(time.time())) + ".jpg" #misc.imsave(path, resize_image) #将resize_image对象转为数组array返回 return np.array(resize_image) #将file_list中所有图像文件读取到数组images中 images = np.array([read_andtransform(filename) for filename in file_list]) #保存images中所有图像 for i in range(len(images)): print(images[i].shape) #将array保存为image对象的方法: #使用misc.toimage方法将array转为image对象 img = misc.toimage(images[i]) #使用imsave将image对象保存 misc.imsave("C:\\Users\\Administrator\\Desktop\\images\\res\\"+str((time.time())) + ".jpg",img)如果使用Pillow,简单的图像读写操作如下:
import numpy as np import os from PIL import Image #使用open方法打开图像 img = Image.open("C:\\Users\\Administrator\\Desktop\\images\\test.jpg") #对图像进行简单操作 #定义图像像素反相效果函数 def reverse(x): return 255 - x #使用eval方法对图像进行反相操作 img1 = Image.eval(img,reverse) #使用save进行保存 img1.save("C:\\Users\\Administrator\\Desktop\\images\\res.jpg") #获取[x,y]位置像素rgb x=10 y=10 rgb = img.getpixel((x,y)) #对[x,y]处像素赋值 rgb_new = (100,200,255) img.putpixel((x,y),rgb_new) #获取rgb三通道像素数组 channels = img.split() r,g,b = channels #将rgb三通道融合成新image img_new = Image.merge("RGB",(r,g,b))以上就是使用Scipy和PILLOW库进行简单的图像操作的方法,更详细的介绍请参考官方说明文档。