本文以windows平臺為例,介紹使用Python進行計算機視覺編程的開發(fā)環(huán)境搭建與基本配置,總結(jié)了軟件下載地址、安裝方法和開發(fā)環(huán)境搭建的基本方法,并提供了簡單的代碼示例。想說的是,Python安裝方法與系統(tǒng)、軟件版本等諸多因素有關(guān),要想一步到位比較難,遇到問題多種方式可以混合嘗試。
Python:Pyhton2.7或Python3.x
pip:python的一個包管理器,安裝后可方便的引入第三方庫
NumPy:該模塊用于python計算機視覺編程時的向量、矩陣的表示與操作
SciPy:更高級的數(shù)學(xué)計算模塊
Matplotlib:結(jié)果可視化模塊
PIL:Python的圖像處理類庫,提供通用的圖像處理功能及大量基本圖像操作
LIBSVM:用于機器學(xué)習(xí)的開源庫
OpenCV:流行的開源機器視覺算法庫,提供越來越多的Python接口,目前支持到Python2.7
2.1 Python
下載地址:
https://www./downloads/
版本選擇:
選擇Python2還是Pyhton3這是一個問題,我們需要知道的:
Python2:用的人多,坑少,大多數(shù)第三方庫目前都支持。
Python3:重大改進,發(fā)展趨勢。但有些第三方庫目前還支持不到3.x。
Python3與Python2有很多語法差異,并且不兼容2.x版本。
對初學(xué)者,可以先學(xué)Pyhton2.7,等第三方庫支持較好了再學(xué)習(xí)Python3,也會比較快入手。
安裝并添加環(huán)境變量:
下載與操作系統(tǒng)對應(yīng)的版本,運行安裝,這里選擇默認安裝路徑C:\Python27。
然后添加Python的安裝路徑到系統(tǒng)環(huán)境變量PATH中:計算機->右鍵->屬性->高級系統(tǒng)設(shè)置,系統(tǒng)環(huán)境變量后加“;”號,然后添加python2.7的路徑,確定。
這樣,命令行即可直接運行Pyhton,并查看版本信息
2.2 安裝pip
pip是python中的一個包管理器,就是在電腦中自動安裝、配制、卸載和升級軟件包的工具組合。pip可以代替之前的easy_install,可方便的引入第三方庫。
下載地址:
https://pypi./pypi/pip
目前最新版本為PIP-8.1.2。
安裝并添加系統(tǒng)環(huán)境變量:
下載對pip-8.1.2.tar.gz壓縮包,打開cmd,進入相應(yīng)解壓目錄使用命令行安裝。
例如,下載的是PIP-8.1.2.tar.gz壓縮包,解壓后得到pip-8.1.2文件夾。將該拷貝到Python安裝目錄C:\Python27下(不拷貝到這個文件夾也可以),打開cmd進入pip-8.1.2目錄下運行:
python setup.py install
然后再次編輯系統(tǒng)環(huán)境變量,將C:\Python27\Scripts也添加到Path,這樣可以方便的運行pip
有了pip可以在命令行使用 pip install xxx 的方法方便的安裝所需的第三方庫,例如下面的NumPy和SciPy等第三方庫了。
2.3 NumPy
NumPy(Numeric Python)是Python的一種開源的數(shù)值計算擴展。這種工具可用來存儲和處理大型矩陣,比Python自身的嵌套列表(nested list structure)結(jié)構(gòu)要高效的多(該結(jié)構(gòu)也可以用來表示矩陣(matrix))。提供了許多高級的數(shù)值編程工具,如:矩陣數(shù)據(jù)類型、矢量處理,以及精密的運算庫。專為進行嚴格的數(shù)字處理而產(chǎn)生。
NumPy和SciPy都可以在 http://www./scipylib/download.html 下載。
下載地址:
https:///projects/numpy/files/
https:///projects/numpy/files/NumPy/1.9.2/numpy-1.9.2-win...
安裝:
方法1:
下載源碼,打開cmd,進入相應(yīng)目錄使用命令行安裝
python setup.py install
方法2:
windows系統(tǒng)可以下載對應(yīng)版本的.exe文件,如numpy-1.9.2-win32-superpack-python2.7.exe安裝。
方法3:
使用pip直接安裝NumPy
pip install numpy
可能會因為網(wǎng)速等原因安裝不成功,多試幾次。本機安裝時試了兩次裝成功。
2.4 SciPy
SciPy (Scientific Computing Tools for Python) 是一款方便、易用的python的科學(xué)和工程計算工具包。它包括統(tǒng)計,優(yōu)化,整合,線性代數(shù)模塊,傅里葉變換,信號和圖像處理,常微分方程求解器等。
方法3:
同樣也可以使用pip直接安裝scipy
pip install scipy
2.5 PIL
PIL (Python Imaging Library) Python圖像處理類庫。提供了通用的圖像處理功能,以及大量游泳的基本圖像操作,如圖像縮放、裁剪、色彩空間轉(zhuǎn)換等。
下載地址:
http://www./products/pil/
安裝:
方法1:
下載源碼,打開cmd,進入相應(yīng)目錄使用命令行安裝
python setup.py install
方法2:
windows系統(tǒng)可下載.exe文件,如PIL-1.1.7.win32-py2.7.exe安裝。注意PIL目前免費版支持到Python2.7。
方法3:
使用pip安裝
pip install PIL
2.6 matplotlib
matplotlib是一個2維Pyhton跨平臺交互式繪圖庫。
下載地址:
http:///users/installing.html
https://pypi./pypi/matplotlib/
安裝說明文檔 http:///users/installing.html 提示在windows平臺安裝matplot需要安裝相應(yīng)版本的setuptools, numpy, python-dateutil, pytz, pyparsing, 和 cycler。具體下載地址在該頁面下方有。本機只預(yù)先裝了numpy,其他包可能在pip安裝時自動下載安裝了吧。大家可以先試試下面的方法2。
安裝:
方法1:
使用pip離線安裝.whl文件。將上述下載地址下載好的matplotlib-1.5.1-cp27-none-win32.whl拷入某文件夾
pip install e:\教程\python\matplotlib \ matplotlib-1.5.1-cp27-none-win32.whl
方法2:
使用pip在線安裝
pip install matplotlib
2.7 LIBSVM
LIbSVM是臺灣同胞為世界機器學(xué)習(xí)的卓越貢獻之一,目前支持Python, R, MATLAB, Perl, Ruby, Weka, CommonLISP, CLISP, Haskell, OCaml, LabVIEW, and PHP interfaces. C# .NET code and CUDA多種語言。
下載地址:
http://www.csie./~cjlin/libsvm/
下載LIBSVM軟件包libsvm-3.21.zip文件
安裝:
windows下安裝python的LIBSVM模塊及其艱難,請務(wù)必做好思想準備:windows下安裝LIBSVM最常見問題出在libsvm.dll文件上,關(guān)鍵是要用正確版本的libsvm.dll文件替換windows下的libsvm.dll文件。
在嘗試網(wǎng)上各種方法未果后,終于找到一個在本機環(huán)境下能用的方法,并且此方法比較簡便,僅供大家參考。本機環(huán)境為:
系統(tǒng)為win7 64位
下載的LIBSVM版本是libsvm-3.21壓縮包
python安裝路徑C:\Python27
Python版本:2.7.11 win32位
(1)將下載的libsvm-3.21壓縮包解壓到C盤根目錄下(其他文件夾也可)
將libsvm-3.21解壓到C:\libsvm-3.21\
(2)下載libsvm-3.21的.whl文件
到以下網(wǎng)址下載與自己Python版本對應(yīng)的LIBSVM的.whl文件:
http://www.lfd./~gohlke/pythonlibs/#libsvm
拷貝到某目錄,例如:e:\教程\python\Libsvm
(3)使用pip安裝libsvm-3.21-cp27-none-win32.whl
運行cmd,使用pip安裝上述.whl文件:
pip install e:\教程\python\libsvm\libsvm-3.21-cp27-none-win32.whl
現(xiàn)在,符合本機環(huán)境和軟件版本的LIBSVM就被存放到你python安裝目錄下的Lib\site-packages文件夾中,其中有一個\libsvm-3.21.dist-info文件夾,里面都是說明文件。
(4)將安裝生成的libsvm.dll替換C:\libsvm-3.21\windows下的libsvm.dll
使用安裝生成的C:\Python27\Lib\site-packages\下的libsvm.dll替換C:\libsvm-3.21\windows下的libsvm.dll。至此,libsvm.dll文件和你電腦的版本號完全對應(yīng),安裝完成,本文在第3節(jié)測試安裝。
本方法參考了下文:
http://www./info-detail-1289587.html
2.8 OpenCV
OpenCV是業(yè)界最常用的開源機器視覺庫,無需多介紹。目前OpenCV僅支持到Python2.7。
下載地址:
http:///downloads.html
安裝:
下載文件opencv-2.4.10.exe是一個自解壓縮文件,將解壓后的文件夾opencv->build->python->2.7->x86中的 cv2.pyd復(fù)制到:C:\Python27\Lib\site-packages 中即可。
3. 測試安裝:示例程序
3.1 NumPy+PIL
Python IDLE GUI新建File,輸入如下代碼,保存后F5運行
from PIL import Image
pil_im =Image.open('f:/images/Lena.jpg').convert('L')
pil_im.show()
值得注意的是:
windows7下PythonPIL庫show()函數(shù)顯示圖片有問題,解決方法是在將Python安裝目錄下的Lib/site-packages/PIL目錄下的 ImageShow.py 文件的第 99 行進行替換:
將原
return 'start /wait %s && del/f %s' % (file, file)
替換為
return 'start /wait %s && PING127.0.0.1 -n 5 > NUL && del /f %s' % (file, file)
替換后圖片將使用windows圖片查看器打開。
NumPy參考文檔:
http://docs./doc/numpy/
PIL參考文檔:
http://www./library/pil/handbook/index.htm
http:///imagingbook/
3.2 NumPy+Matplotlib
打開Python,F(xiàn)ile->New File,輸入如下代碼,保存,F(xiàn)5運行
import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C,S = np.cos(X), np.sin(X)
plt.plot(X,C)
plt.plot(X,S)
plt.show()
更多示例參考:
http://www./perso/nrougier/teaching/matplotlib/
幫助文檔:
http:///contents.html
http:///Matplotlib.pdf
3.3 LIBSVM
2.7節(jié)已經(jīng)安裝配置好了LIBSVM,打開IDLE (PythonGUI),新建一個文件,輸入如下代碼:
import os
os.chdir('C:\libsvm-3.21\python')
from svmutil import *
y, x = svm_read_problem('../heart_scale')
m = svm_train(y[:200], x[:200], '-c 4')
p_label, p_acc, p_val = svm_predict(y[200:], x[200:], m)
取個文件名(例如svmlib_test1.py)保存后,按F5運行,運行結(jié)果如下,說明安裝成功
===================== RESTART:D:\Python\svmlib_test1.py =====================
Accuracy = 84.2857%(59/70) (classification)
3.4 OpenCV
打開解壓后opencv文件夾中的source\samples\python
選擇drawing.py右鍵->Edit with IDLE
如果沒有問題應(yīng)該看到變換的彩色條紋:
自己寫個顯示圖像的例子,新建文件,輸入代碼
import cv2
im = cv2.imread('f:/images/Lena.jpg')
imGray = cv2.imread('f:/images/Lena.jpg',cv2.CV_LOAD_IMAGE_GRAYSCALE)
cv2.imshow('WinName',im)
cv2.imshow('Gray WinName',imGray)
cv2.waitKey()
保存,F(xiàn)5運行,結(jié)果如下
Python機器視覺編程環(huán)境搭建過程比較繁瑣,每一步可能都有多種方法,也可能有各種問題,本文總結(jié)的是書上和網(wǎng)友給出的部分方法,難免疏漏,僅供參考。
原文鏈接: http://blog.csdn.net/iracer/article/details/51537020