從電子信息工程跳到計(jì)算機(jī),在研究圖像處理的東西,發(fā)現(xiàn)opencv很好玩,想深入學(xué)一下,沒有特別好的教材,最好的文檔就是官方的tutorials,在實(shí)驗(yàn)室比較忙,希望能每天晚上抽點(diǎn)時(shí)間把這個(gè)大概看一下,不求全部看懂,至少能夠深入一下。所有代碼編寫均在Ubuntu16.04+opencv2.4.9+g++5.4.0+cmake3.5.1下完成。 以前寫的文章介紹了Windows和Linux下opencv的配置方法,不在贅述,現(xiàn)在說一下怎么在Linux下編譯寫好的Linux代碼。本文提供兩種方法g++或cmake: 代碼如下:
1.使用g++編譯寫好的opencv代碼 gcc和g++分別是GNU的C&C++編譯器,其編譯過程可分為四步: (1)預(yù)處理:生成.i的文件 (2)將預(yù)處理的文件轉(zhuǎn)換成匯編語言,生成文件.s (3)由匯編變?yōu)槟繕?biāo)代碼(機(jī)器代碼)生成.o的文件 (4)連接目標(biāo)代碼,生成可執(zhí)行程序 g++編譯命令有很多可選擇項(xiàng),可以根據(jù)不同的需要使用,具體請自行查閱。普通的g++編譯命令如下:
其中Hello.cpp是要編譯的cpp名稱,生成的可執(zhí)行文件是Hello,如果編譯多個(gè)cpp文件,可用如下方法: 建立一個(gè)hello.h文件
建立一個(gè)名字為hello.cpp的C++文件
建立一個(gè)名字為speak.cpp的主文件
想要將包含hello.h、hello.cpp和speak.cpp三個(gè)文件編譯,可寫如下命令:
具體的g++用法不再贅述,可自行查閱?,F(xiàn)在說一下怎么通過g++編譯OpenCV程序,如直接執(zhí)行,出現(xiàn)下種錯(cuò)誤情況:
因?yàn)樵趫?zhí)行時(shí)沒有將OpenCV的庫包含進(jìn)去,可以使用如下命令進(jìn)行編譯:
生成名字為opencv的可執(zhí)行文件,接下來運(yùn)行
運(yùn)行結(jié)果如下:
2.使用cmake編譯OpenCV文件 首先確保已經(jīng)安裝了cmake,然后建立一個(gè)CMakeLists.txt文件,輸入如下內(nèi)容
project()括號(hào)里面填寫要生成的文件名稱,add_executable()及其后一行類似,然后可以使用cmake命令運(yùn)行,此次執(zhí)行
運(yùn)行結(jié)果如圖所示: 至此,OpenCV程序的兩種運(yùn)行方式介紹完畢! PS:先把這些寫到Libre就是個(gè)坑,改字體改了好長時(shí)間,還是那么難看?。。?br> |
|