一提到數字圖像處理,可能大多數人就會想到matlab,但matlab也有自身的缺點:python
一、不開源,價格貴linux
二、軟件容量大。通常3G以上,高版本甚至達5G以上。windows
三、只能作研究,不易轉化成軟件。瀏覽器
所以,咱們這裏使用python這個腳本語言來進行數字圖像處理。函數
要使用python,必須先安裝python,通常是2.7版本以上,無論是在windows系統,仍是linux系統,安裝都是很是簡單的。工具
要使用python進行各類開發,就必須安裝對應的庫。這和matlab很是類似,只是matlab裏面叫工具箱(toolbox),而python裏面叫庫或包。安裝這些庫,通常都是使用pip來安裝。spa
使用python進行數字圖片處理,還得安裝Pillow包。雖然python裏面自帶一個PIL(python images library), 但這個庫如今已經中止更新了,因此使用Pillow, 它是由PIL發展而來的。操作系統
pip install Pillow
1、圖片的打開與顯示code
from PIL import Image img=Image.open('d:/dog.png') img.show()
雖然使用的是Pillow,但它是由PIL fork而來,所以仍是要從PIL中進行import. 使用open()函數來打開圖片,使用show()函數來顯示圖片。orm
這種圖片顯示方式是調用操做系統自帶的圖片瀏覽器來打開圖片,有些時候這種方式不太方便,所以咱們也可使用另上一種方式,讓程序來繪製圖片。
from PIL import Image import matplotlib.pyplot as plt img=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 #圖片的格式
顯示結果爲:
2、圖片的保存
img.save('d:/dog.jpg')
就一行代碼,很是簡單。這行代碼不只能保存圖片,仍是轉換格式,如本例中,就由原來的png圖片保存爲了jpg圖片。