雖然圖像處理的最佳工具是MATLAB的圖像處理工具箱,,但是在進行一些“簡單的”圖像處理任務或者大批量的簡單圖像處理任務的時候,,Python圖像處理的方法更有優(yōu)勢。
1.引言:
提到圖像處理,,人們通常想到的工具是MATLAB,。誠然,,MATLAB提供了一個強大的圖像處理工具箱。但是,,對于簡單的圖像處理任務而言,,采用一種高級的語言將起到事半功倍的效果。Python無疑就是實現(xiàn)這一功能的理想選擇,。Python的面向?qū)ο?、弱?shù)據(jù)類型等等特性都使得用它來進行簡單的圖像處理的時候非常的簡潔方便。
2.簡介:
PythonWare公司提供了免費的Python圖像處理工具包PIL(Python Image Library),該軟件包提供了基本的圖像處理功能,,如:改變圖像大小,,旋轉(zhuǎn)圖像,圖像格式轉(zhuǎn)換,,色場空間轉(zhuǎn)換,,圖像增強,直方圖處理,,插值和濾波等等,。雖然在這個軟件包上要實現(xiàn)類似MATLAB中的復雜的圖像處理算法并不太適合,但是Python的快速開發(fā)能力以及面向?qū)ο蟮鹊戎T多特點使得它非常適合用來進行原型開發(fā),。
在PIL中,,任何一副圖像都是用一個Image對象表示,而這個類由和它同名的模塊導出,,因此,,要加載一副圖像,最簡單的形式是這樣的:
注意:第一行的Image是模塊名,;第二行的img是一個Image對象,; Image類是在Image模塊中定義的。關于Image模塊和Image類,,切記不要混淆了?,F(xiàn)在,我們就可以對img進行各種操作了,,所有對img的操作最終都會反映到到dip.img圖像上,。
PIL提供了豐富的功能模塊:Image,ImageDraw,ImageEnhance,ImageFile等等,。
最常用到的模塊是 Image,ImageDraw,ImageEnhance這三個模塊。下
面我對此分別做一介紹,。關于其它模塊的使用請參見說明文檔.有關PIL軟件包和相關的說明文檔可在PythonWare的站點www.Pythonware.com上獲得,。
download: http://www./products/pil/index.htm example: http://www./library/pil/handbook/image.htm
3.Image模塊:
Image模塊是PIL最基本的模塊,其中導出了Image類,,一個Image類實例對象就對應了一副圖像,。同時,,Image模塊還提供了很多有用的函數(shù),。
(1)打開一副圖像文件:
這將返回一個Image類實例對象,后面的所有的操作都是在img上完成的,。
(2)調(diào)整圖像大小:
原來的圖像大小是256x256,現(xiàn)在,,保存的new_img.jpg的大小是128x128。 就是這么簡單,,需要說明的是Image.BILINEAR指定采用雙線性法對像素點插值,。
(3)旋轉(zhuǎn)圖像: 現(xiàn)在我們把剛才調(diào)整過大小的圖像旋轉(zhuǎn)45度:
總結(jié): 在批處理或者簡單的Python圖像處理任務中,采用Python和PIL(Python Image Library)的組合來完成圖像處理任務是一個很不錯的選擇,。設想有一個需要對某個文件夾下的所有圖像將對比度提高2倍的任務,。用Python來做將是十分簡單的。當然,,我也不得不承認Python在圖像處理方面的功能還比較弱,,顯然還不適合用來進行濾波、特征提取等等一些更為復雜的應用,。我個人的觀點是,,當你要實現(xiàn)這些“高級”的算法的時候,好吧,,把它交給MATLAB去完成,。但是,如果你面對的只是一個通常的不要求很復雜算法的圖像處理任務,,那么,,Python應該才是你的最佳搭檔。
|
|
來自: 昵稱QAb6ICvc > 《python》