python數(shù)字圖像處理環(huán)境安裝與配置過程示例
引言
一提到數(shù)字圖像處理編程,可能大多數(shù)人就會想到matlab,但matlab也有自身的缺點(diǎn):
1、不開源,價格貴
2、軟件容量大。一般3G以上,高版本甚至達(dá)5G以上。
3、只能做研究,不易轉(zhuǎn)化成軟件。
因此,我們這里使用python這個腳本語言來進(jìn)行數(shù)字圖像處理。
要使用python,必須先安裝python,一般是2.7版本以上,不管是在windows系統(tǒng),還是linux系統(tǒng),安裝都是非常簡單的。
要使用python進(jìn)行各種開發(fā)和科學(xué)計(jì)算,還需要安裝對應(yīng)的包。這和matlab非常相似,只是matlab里面叫工具箱(toolbox),而python里面叫庫或包?;趐ython腳本語言開發(fā)的數(shù)字圖片處理包,其實(shí)很多,比如PIL,Pillow, opencv, scikit-image等。
對比這些包,PIL和Pillow只提供最基礎(chǔ)的數(shù)字圖像處理,功能有限;
opencv實(shí)際上是一個c++庫,只是提供了python接口,更新速度非常慢。到現(xiàn)在python都發(fā)展到了3.5版本,而opencv只支持到python 2.7版本;
scikit-image是基于scipy的一款圖像處理包,它將圖片作為numpy數(shù)組進(jìn)行處理,正好與matlab一樣,因此,我們最終選擇scikit-image進(jìn)行數(shù)字圖像處理。
一、需要的安裝包
因?yàn)閟cikit-image是基于scipy進(jìn)行運(yùn)算的,因此安裝numpy和scipy是肯定的。要進(jìn)行圖片的顯示,還需要安裝matplotlib包,綜合起來,需要的包有:
Python >= 2.6 Numpy >= 1.6.1 Cython >= 0.21 Six >=1.4 SciPy >=0.9 Matplotlib >= 1.1.0 NetworkX >= 1.8 Pillow >= 1.7.8 dask[array] >= 0.5.0
比較,安裝起來非常費(fèi)事,尤其是scipy,在windows上基本安裝不上。
但是不用怕,我們選擇一款集成安裝環(huán)境就行了,在此推薦Anaconda, 它把以上需要的包都集成在了一起,因此我們實(shí)際上從頭到尾只需要安裝Anaconda軟件就行了,其它什么都不用裝。
二、下載并安裝 anaconda
先到https://www.anaconda.com/products/distribution下載anaconda, 現(xiàn)在的版本有python2.7版本和python3.5版本,下載好對應(yīng)版本、對應(yīng)系統(tǒng)的anaconda,它實(shí)際上是一個sh腳本文件,大約280M左右。
本系列以windows7+python3.5為例,因此我們下載如下圖紅框里的版本:

名稱為:Anaconda3-2.4.1-Windows-x86_64.exe
是一個可執(zhí)行的exe文件,下載完成好,直接雙擊就可以安裝了。
在安裝的時候,假設(shè)我們安裝在D盤根目錄,如:

并且將兩個選項(xiàng)都選上,將安裝路徑寫入環(huán)境變量。

然后等待安裝完成就可以了。
安裝完成后,打開windows的命令提示符:
輸入conda list 就可以查詢現(xiàn)在安裝了哪些庫,常用的numpy, scipy名列其中。如果你還有什么包沒有安裝上,可以運(yùn)行
conda install *** 來進(jìn)行安裝。(***為需要的包的名稱)
如果某個包版本不是最新的,運(yùn)行 conda update *** 就可以更新了。
三、簡單測試
anaconda自帶了一款編輯器spyder,我們以后就可以用這款編輯器來編寫代碼。
spyder.exe放在安裝目錄下的Scripts里面,如我的是 D:/Anaconda3/Scripts/spyder.exe, 直接雙擊就能運(yùn)行。我們可以右鍵發(fā)送到桌面快捷方式,以后運(yùn)行就比較方便了。
我們簡單編寫一個程序來測試一下安裝是否成功,該程序用來打開一張圖片并顯示。首先準(zhǔn)備一張圖片,然后打開spyder,編寫如下代碼:
from skimage import io
img=io.imread('d:/dog.jpg')
io.imshow(img)將其中的d:/dog.jpg 改成你的圖片位置
然后點(diǎn)擊上面工具欄里的綠色三角進(jìn)行運(yùn)行,最終顯示

如果右下角“ Ipython console" 能顯示出圖片,說明我們的運(yùn)行環(huán)境安裝成功。
我們可以選擇右上角的 ” variable explorer" 來查看圖片信息,如

我們可以把這個程序保存起來,注意python腳本文件的后綴名為py.
四、skimage包的子模塊
skimage包的全稱是scikit-imageSciKit (toolkit forSciPy) ,它對scipy.ndimage進(jìn)行了擴(kuò)展,提供了更多的圖片處理功能。它是由python語言編寫的,由scipy 社區(qū)開發(fā)和維護(hù)。skimage包由許多的子模塊組成,各個子模塊提供不同的功能。主要子模塊列表如下:
| 子模塊名稱 | 主要實(shí)現(xiàn)功能 |
| io | 讀取、保存和顯示圖片或視頻 |
| data | 提供一些測試圖片和樣本數(shù)據(jù) |
| color | 顏色空間變換 |
| filters | 圖像增強(qiáng)、邊緣檢測、排序?yàn)V波器、自動閾值等 |
| draw | 操作于numpy數(shù)組上的基本圖形繪制,包括線條、矩形、圓和文本等 |
| transform | 幾何變換或其它變換,如旋轉(zhuǎn)、拉伸和拉東變換等 |
| morphology | 形態(tài)學(xué)操作,如開閉運(yùn)算、骨架提取等 |
| exposure | 圖片強(qiáng)度調(diào)整,如亮度調(diào)整、直方圖均衡等 |
| feature | 特征檢測與提取等 |
| measure | 圖像屬性的測量,如相似性或等高線等 |
| segmentation | 圖像分割 |
| restoration | 圖像恢復(fù) |
| util | 通用函數(shù) |
用到一些圖片處理的操作函數(shù)時,需要導(dǎo)入對應(yīng)的子模塊,如果需要導(dǎo)入多個子模塊,則用逗號隔開,如:
from skimage import io,data,color
以上就是python數(shù)字圖像處理環(huán)境安裝與配置過程示例的詳細(xì)內(nèi)容,更多關(guān)于python數(shù)字圖像處理環(huán)境安裝配置的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于python(urlparse)模板的使用方法總結(jié)
下面小編就為大家?guī)硪黄趐ython(urlparse)模板的使用方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
Python基于pip實(shí)現(xiàn)離線打包過程詳解
這篇文章主要介紹了Python基于pip實(shí)現(xiàn)離線打包過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05
Python?OpenCV超詳細(xì)講解讀取圖像視頻和網(wǎng)絡(luò)攝像頭
OpenCV用C++語言編寫,它具有C?++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac?OS,OpenCV主要傾向于實(shí)時視覺應(yīng)用,并在可用時利用MMX和SSE指令,本篇文章帶你了解OpenCV讀取圖像視頻與網(wǎng)絡(luò)攝像頭的方法2022-04-04
Pandas?DataFrame.drop()刪除數(shù)據(jù)的方法實(shí)例
pandas作為數(shù)據(jù)分析強(qiáng)大的庫,是基于numpy數(shù)組構(gòu)建的,專門用來處理表格和混雜的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Pandas?DataFrame.drop()刪除數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-07-07

