小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Ubuntu下Opencv與Python的協(xié)作 | 進擊的馬斯特

 天才白癡書館 2015-04-15

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,下載下來的是一個壓縮包,隨便解壓到你喜歡的位置,以我的機器為例,解壓到 /MySoft下,最終的目錄結(jié)構(gòu)為: /home/pinky/MySoft/OpenCV-2.1.0/。由于下載得到的是源碼,需要進行編譯,官網(wǎng)推薦的編譯方式是使用cmake,這里我是用的是cmake的gui版本,即cmke-qt-gui,首先我們需要使用終端安裝它。打開終端,運行命令:

1
sudo apt-get install cmake-qt-gui

安裝完成之后,按理說應(yīng)該可以正常編譯了,但是我的機器直接編譯會報錯,提示需要安裝libgtk2.0-dev這個東東,不知是我的機器問題還是都需要這么做,這個軟件具體干嘛的我也不知道,推薦先安裝一下,終端運行以下命令:

1
2
sudo apt-get install aptitude
sudo aptitude install libgtk2.0-dev


aptitude 可以說是apt-get的一個GUI界面,不過這里用它可能是因為它可以自動安裝所有的依賴包吧。這個安裝以后,為了后面和Python協(xié)作,還需要檢查一下你機器上面的Python相關(guān)依賴,終端運行命令:

1
apt-get install libpython2.6 python-dev python2.6-dev

這樣以后,編譯前所做的工作就基本結(jié)束了,從“應(yīng)用程序”中的“編程”子菜單中打開cmake,Source code這一欄中填寫你的OpenCV解壓的路徑,第二行是編譯后的可執(zhí)行文件放在哪里,可以在OpenCV的路徑下新建一個文件夾,如release文件夾,則編譯結(jié)果會放到其中去,點擊Configure按鈕,接著出現(xiàn)選擇generator的界面,使用默認選項,即Unix Makefiles,點擊finish,如果一切順利的話就會出現(xiàn)以下界面:

正常的話上圖中底下的白色框中是有信息的,我的截圖是在編譯過后截的,所以是空白,接著選擇編譯參數(shù),這里我們只需要注意以下幾個參數(shù)有沒有被選中,其他的默認即可:

BUILD-EXAMPLES 生成例子
BUILD-NEW-PYTHON-SUPPORT 生成新的python支持
OPENCV-BUILD-3RDPARTY-LIBS 生成第三方的庫
INSTALL-C-EXAMPLES 安裝C的例子
INSTALL-PYTHON-EXAMPLES安裝python的例子

然后,點擊Generate按鈕,就可以生成可執(zhí)行的文件了,可以看到release目錄下已經(jīng)有很多文件,下面我們要對這些文件進行make。打開終端,進入release所在文件夾:

1
2
cd  /home/pinky/MySoft/OpenCV-2.1.0/
make

make過程大概需要幾分鐘左右,過程如下圖這樣:

最終出現(xiàn)的cv.so文件很重要,它就是OpenCV和Python協(xié)作的關(guān)鍵,然后再執(zhí)行install步驟,終端繼續(xù)運行:

1
sudo make install

過程大概如下圖:

這樣以后,OpenCV的安裝步驟宣告結(jié)束。

代碼測試

下面我們用代碼測試一下安裝是否正確。首先是一段C代碼:

1
2
3
4
5
6
7
8
9
10
11
#include "cv.h"
#include "highgui.h"
void main()
{
IplImage* img;
img = cvLoadImage("test.jpg",1);
cvNamedWindow("ShowImage",1);
cvShowImage("ShowImage",img);
cvWaitKey(0);
}

使用gcc進行編譯鏈接,終端輸入命令:

1
gcc `pkg-config --cflags --libs opencv` -o testCV testCV.c

注意上面的引號是“反單引號”,在數(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文件夾即可。終端運行命令:

1
sudo mv /usr/local/lib/python2.6/site-packages/cv.so /usr/local/lib/python2.6/dist-packages/cv.so

執(zhí)行之后,再import一下試試,就可以了,下面寫一段簡單的python代碼:

1
2
3
4
5
6
7
import cv
if __name__ == '__main__':
img = cv.LoadImageM ("test.jpg")
cv.NamedWindow ("ShowImage")
cv.ShowImage ("ShowImage", img)
cv.WaitKey (0)

像普通python代碼那樣運行它即可,即python testCVPY.py,圖片就能顯示出來了。至此,盡情的使用python享受Opencv吧!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多