PythonWare公司提供免費的Python圖像處理工具包PIL(Python Image Library),該工具包提供基本的圖像處理功能,例如:
改變圖像尺寸、旋轉圖像、圖像格式轉換、色域空間轉換、圖像增強、直方圖處理、插值和濾波等。雖然不適合在這個軟件包上實現類似於MATLAB中的復雜圖像處理算法,但是Python的快速開發能力和面向對象的特性使其非常適合原型開發。
在PIL,任何圖像都由壹個圖像對象表示,這個類由同名的模塊導出。因此,最簡單的形式如下:
導入圖像img = Image.open(" dip.jpg ")
註意:第壹行的圖像是模塊名;第二行的img是圖像對象;
圖像類是在圖像模塊中定義的。記住不要混淆圖像模塊和圖像類。現在,我們可以在img上做各種操作,img上的所有操作。
該操作最終將反映在dip.img圖像中。
PIL提供了豐富的功能模塊:圖像、圖像繪制、圖像增強、圖像文件等。最常用的模塊是
Image、Image、ImageDraw、ImageEnhance是三個模塊。我來分別介紹壹下。關於其他模塊的使用,請參考文檔。對於PIL軟件包和
相關文檔可以在PythonWare的網站www.Pythonware.com上獲得。
圖像模塊:
圖像模塊是PIL最基本的模塊,圖像類就是在這個模塊中派生出來的,壹個圖像類實例對象對應壹張圖像。同時,圖像模塊也提供了許多有用的功能。
(1)打開文件:
導入圖像img = Image.open(" dip.jpg ")
這將返回壹個Image類實例對象,所有後續操作都在img上完成。
(2)調整文件大小:
導入圖片img = Image . open(" img . jpg ")new _ img = img . resize
((128,128),圖像。雙線性)new_img.save("new_img.jpg ")
原始圖像尺寸為256x256。現在new_img.jpg保存的大小是128x128。
就這麽簡單。應該註意的是,圖像。雙線性指定像素點的雙線性插值。
在批量處理或者簡單的Python圖像處理任務中,使用Python和PIL(Python Image Library)的結合來完成圖像處理任務是壹個不錯的選擇。想象壹個任務,需要將文件夾中所有圖像的對比度提高2倍。用Python來做會很簡單。當然,不得不承認Python在圖像處理方面的功能還是比較弱的,顯然不適合濾波、特征提取等更復雜的應用。我個人的看法是,當妳想實現這些“高級”算法的時候,好吧,就讓MATLAB來做吧。但是,如果妳面對的只是壹個不需要復雜算法的普通圖像處理任務,那麽Python圖像處理應該是妳最好的夥伴。