Python---影象讀寫操作(scipy)
阿新 • • 發佈:2019-02-07
這裡介紹的僅僅是深度學習中常用的操作:
如果使用Pillow,簡單的影象讀寫操作如下:#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)
以上就是使用Scipy和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))