Ubuntu下Opencv與Python的協(xié)作暑假時就想寫一篇關(guān)于Ubuntu下配置Opencv與Python協(xié)作的文章,苦于當時自己也不是搞得特別清楚,正好最近重裝了個Ubuntu 10.10,重新配置了一遍,才算真正明白。網(wǎng)上關(guān)于這個的文章雖然一大把,但不是太復(fù)雜就是根本不管用,這個配置還是有點鬧心的。 Opencv的編譯和安裝Linux下貌似只能下載Opencv的源碼了,來到Opencv的中文官網(wǎng),最新版本是2.1,點擊OpenCV for Linux,下載下來的是一個壓縮包,隨便解壓到你喜歡的位置,以我的機器為例,解壓到
安裝完成之后,按理說應(yīng)該可以正常編譯了,但是我的機器直接編譯會報錯,提示需要安裝libgtk2.0-dev這個東東,不知是我的機器問題還是都需要這么做,這個軟件具體干嘛的我也不知道,推薦先安裝一下,終端運行以下命令:
這樣以后,編譯前所做的工作就基本結(jié)束了,從“應(yīng)用程序”中的“編程”子菜單中打開cmake,Source code這一欄中填寫你的OpenCV解壓的路徑,第二行是編譯后的可執(zhí)行文件放在哪里,可以在OpenCV的路徑下新建一個文件夾,如release文件夾,則編譯結(jié)果會放到其中去,點擊Configure按鈕,接著出現(xiàn)選擇generator的界面,使用默認選項,即Unix Makefiles,點擊finish,如果一切順利的話就會出現(xiàn)以下界面: 正常的話上圖中底下的白色框中是有信息的,我的截圖是在編譯過后截的,所以是空白,接著選擇編譯參數(shù),這里我們只需要注意以下幾個參數(shù)有沒有被選中,其他的默認即可:
然后,點擊Generate按鈕,就可以生成可執(zhí)行的文件了,可以看到release目錄下已經(jīng)有很多文件,下面我們要對這些文件進行make。打開終端,進入release所在文件夾:
make過程大概需要幾分鐘左右,過程如下圖這樣: 最終出現(xiàn)的cv.so文件很重要,它就是OpenCV和Python協(xié)作的關(guān)鍵,然后再執(zhí)行install步驟,終端繼續(xù)運行:
過程大概如下圖: 這樣以后,OpenCV的安裝步驟宣告結(jié)束。 代碼測試下面我們用代碼測試一下安裝是否正確。首先是一段C代碼:
使用gcc進行編譯鏈接,終端輸入命令:
注意上面的引號是“反單引號”,在數(shù)字1的左面,cflags和libs前面都是兩個“連接線”,其中pkg-config用來定位OpenCV的頭文件和庫文件,testCV為生成的可執(zhí)行文件,testCV.c為源文件名稱。如果編譯報錯,可能是pkg-config的配置還沒有生效,在終端中運行sudo ldconfig使之生效。編譯完成后,輸入 ./testCV 運行,test.jpg文件就被顯示出來了。 C代碼測試成功之后,我們來看看Python。在終端打開輸入python打開python的編譯環(huán)境,輸入import cv,看看是否能成功。這里可能會報”No module named cv”錯誤,原因就是python找不到我們剛才提到的cv.so文件,我們進入路徑/usr/local/lib/python2.6中發(fā)現(xiàn)有兩個文件夾,一個是dist-package,一個是site-package,python默認只在前者里搜索,而我們生成的cv.so文件則在后者的文件夾里(如果你的兩個文件夾都沒有這個文件,則前面的make步驟出問題了,可能需要重新走一遍整個安裝過程),我們只需要簡單的將它移動到dist-package文件夾即可。終端運行命令:
執(zhí)行之后,再import一下試試,就可以了,下面寫一段簡單的python代碼:
像普通python代碼那樣運行它即可,即python testCVPY.py,圖片就能顯示出來了。至此,盡情的使用python享受Opencv吧! |
|