一提到數字影象處理,可能大多數人就會想到matlab,但matlab也有自身的缺點:
1、不開源,價格貴
2、軟體容量大。一般3G以上,高版本甚至達5G以上。
3、只能做研究,不易轉化成軟體。
因此,我們這裡使用python這個指令碼語言來進行數字影象處理。
要使用python,必須先安裝python,一般是2.7版本以上,不管是在windows系統,還是linux系統,安裝都是非常簡單的。
要使用python進行各種開發,就必須安裝對應的庫。這和matlab非常相似,只是matlab裡面叫工具箱(toolbox),而python裡面叫庫或包。安裝這些庫,一般都是使用pip來安裝。
使用python進行數字圖片處理,還得安裝Pillow包。雖然python裡面自帶一個PIL(python images library), 但這個庫現在已經停止更新了,所以使用Pillow, 它是由PIL發展而來的。
pip install Pillow
一、圖片的開啟與顯示
from PIL import Imageimg=Image.open('d:/dog.png')img.show()
雖然使用的是Pillow,但它是由PIL fork而來,因此還是要從PIL中進行import. 使用open()函式來開啟圖片,使用show()函式來顯示圖片。
這種圖片顯示方式是呼叫作業系統自帶的圖片瀏覽器來開啟圖片,有些時候這種方式不太方便,因此我們也可以使用另外一種方式,讓程式來繪製圖片。
from PIL import Imageimport matplotlib.pyplot as pltimg=Image.open('d:/dog.png')plt.figure("dog")plt.imshow(img)plt.show()
這種方法雖然複雜了些,但推薦使用這種方法,它使用一個matplotlib的庫來繪製圖片進行顯示。matplotlib是一個專業繪圖的庫,相當於matlab中的plot,可以設定多個figure,設定figure的標題,甚至可以使用subplot在一個figure中顯示多張圖片。matplotlib 可以直接安裝
pip install matplotlib
figure預設是帶axis的,如果沒有需要,我們可以關掉
plt.axis('off')
開啟圖片後,可以使用一些屬性來檢視圖片資訊,如
print img.size #圖片的尺寸print img.mode #圖片的模式print img.format #圖片的格式
顯示結果為:
(558, 450)RGBAPNG
二、圖片的儲存
img.save('d:/dog.jpg')
就一行程式碼,非常簡單。這行程式碼不僅能儲存圖片,還是轉換格式,如本例中,就由原來的png圖片儲存為了jpg圖片。