熱線電話:0755-23712116
郵箱:contact@legoupos.cn
地(di)址:深(shen)圳市寶安(an)區沙井街(jie)道(dao)后亭(ting)茅洲山(shan)工業(ye)園工業(ye)大廈全至科(ke)技創新園科(ke)創大廈2層2A
初(chu)次嘗試在Ubuntu上面安裝OpenCV,遇到了(le)(le)各種奇(qi)奇(qi)怪(guai)怪(guai)的問(wen)題,也查了(le)(le)好多博客和相關說明(ming),弄了(le)(le)好久(jiu)好久(jiu)終于,完成了(le)(le)。我本(ben)著(zhu)方便和幫助更多跟我一樣剛(gang)入門OpenCV的小伙伴的初(chu)衷,寫(xie)下(xia)這篇文章(zhang),希望(wang)能幫助大家(jia)(jia),讓大家(jia)(jia)少走彎路(lu)。
為了更好地展示其中的每個細節,我特意重新安裝了一遍(bian),把(ba)自己的步(bu)驟自己再走一遍(bian)保證(zheng)其正確性,順便截圖給大家看(kan)。當然在寫的過程(cheng)中,也參考(kao)了一些博客和網址(zhi),盡可能把(ba)問題講清(qing)楚講明白。相(xiang)關參考(kao)見文章最后。
好了話不多(duo)說,下(xia)面進入正題!
OpenCV3.0以(yi)上的版本,把一(yi)些(xie)不穩定的函(han)數放(fang)到了(le)第三方庫OpenCV_contrib中(zhong)(比如sift,surf等),為(wei)了(le)應(ying)用這些(xie)功(gong)能,我們需(xu)要通過CMake把OpenCV_contrib中(zhong)的功(gong)能重(zhong)新(xin)加入到OpenCV3.2.0中(zhong)。
關于OpenCV_contrib,可(ke)以參見官(guan)方說明://github.com/opencv/opencv_contrib/blob/master/README.md
這(zhe)里我(wo)主要使用CMake-gui這(zhe)個圖形化界(jie)面進行安裝(因為自己對ubuntu的(de)命令不太(tai)熟悉…總是(shi)出錯(cuo)但又不知道怎么解決掉)。當然(ran),也可以用終端直接輸(shu)入(ru)命令操作,可以參(can)考(kao)其他(ta)博客(ke),這(zhe)里就(jiu)不再討論。
1、首先更新(xin) apt-get,在安裝(zhuang)前最好(hao)先更新(xin)一下(xia)系統,不然(ran)有可能會安裝(zhuang)失敗。在終(zhong)端輸入:
sudo apt-get update
sudo apt-get upgrade
2、接著安裝官方給(gei)的opencv依賴(lai)包,在終端輸入(ru):
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev\然(ran)后下(xia)載OpenCV3.2.0和OpenCV_contrib-3.2.0,下(xia)載需要等待一(yi)段時間
//github.com/Itseez/opencv/archive/3.2.0.zip
//github.com/opencv/opencv_contrib/archive/3.2.0.zip
3、接下來安(an)裝(zhuang)CMake-gui,在終端輸入
sudo apt-get install cmake-qt-gui
1、將OpenCV3.2.0和OpenCV_contrib-3.2.0解(jie)壓(提取),如圖所示
2、雙擊進入(ru)解壓出來的OpenCV3.2.0文件夾,右(you)鍵(jian)打(da)開終端(或者在別處打(da)開終端,通過(guo)輸入(ru)cd opencv3.2.0進入(ru)當(dang)前(qian)目錄下),然后依(yi)次輸入(ru)(不要(yao)忘了第(di)三行的最后的空格(ge)和兩個(ge)點(dian)):
mkdir build
cd build
cmake-gui ..
3、然(ran)后會彈(dan)出CMake的(de)圖形化界(jie)面,在上方的(de)兩(liang)個路徑(jing)(jing)里面,選擇好代碼所(suo)在文件夾的(de)路徑(jing)(jing)和要(yao)安裝(zhuang)的(de)路徑(jing)(jing)
4、點擊左(zuo)下方的Configure按鈕,選(xuan)擇Unix Makefiles,選(xuan)擇Use default native compilers(默認),然后點擊Finish
5、需要下載一(yi)些(xie)文件,要等待一(yi)段(duan)時間。然后CMake即載入默認配置(zhi),如下圖所(suo)示:
窗口的中間部分即配置(zhi)(zhi)列(lie)表,這里和使用cmake命令(ling)直(zhi)接(jie)生成makefile文件一致的。正如(ru)上文所述,這里通(tong)過圖(tu)形(xing)界面的方(fang)式(shi)來進行(xing)配置(zhi)(zhi),更加直(zhi)觀方(fang)便。
6、這(zhe)里(li)需要對(dui)兩個(ge)地方(fang)進行(xing)修改:
(1)在CMAKE_BUILD_TYPE 值處輸入RELEASE,其他保持不變(如果已經存在就不必修改)。
下方(fang)的(de)CMAKE_INSTALL_PREFIX顯示(shi)了默(mo)認(ren)的(de)安裝(zhuang)目(mu)錄,生成(cheng)makefile文件最后(hou)執行 make install時(shi)就(jiu)會安裝(zhuang)到這(zhe)個(ge)目(mu)錄,這(zhe)里(li)(li)可(ke)以根(gen)據個(ge)人需求更改(gai)。我這(zhe)里(li)(li)就(jiu)不做修改(gai)了。
(2)在OPENCV_EXTRA_MODULES_PATH處,選(xuan)擇輸(shu)入目錄(單擊這(zhe)一行后方空白(bai)處即可選(xuan)中)
然后選擇opencv_contrib-3.2.0文件夾中的modules文件夾,注意,不是只選中opencv_contrib-3.2.0文件夾就好了,需要選中里面的modules文件夾! 如下圖所示,然后點Choose。
注:OPENCV_EXTRA_MODULES_PATH 是(shi)用來指(zhi)定要(yao)編譯的(de)擴展模塊,其中包(bao)括OpenCV_contrib模塊。
7、點擊Generate生(sheng)成(cheng)配置文件(jian),這一步(bu)應該比較快就完成(cheng)了(le)。
8、接著(zhu),在build目錄下打開終端(duan),輸入
make9、然后就開(kai)始(shi)安裝(zhuang)了(le),這一步(bu)又需(xu)要等(deng)比較長的時間(jian)了(le)……不要急,進行到(dao)這一步(bu)說明很(hen)快就能安裝(zhuang)成功了(le)~
當(dang)你(ni)執行完上面兩行命令的時(shi)(shi)候(hou),并看到100%的時(shi)(shi)候(hou),恭喜你(ni)!安裝(zhuang)成(cheng)功!
1、安裝成(cheng)功后還(huan)需要設置(zhi)opencv的環境變(bian)量。打開文(wen)件:
sudo gedit /etc/ld.so.conf.d/opencv.conf
2、將以下內容添加到最后:
/usr/local/lib
3、接下來配置庫:
sudo ldconfig
4、更改環境變量:
sudo gedit /etc/bash.bashrc
5、在文件后添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig6、保存退出,在運行(xing)下(xia)面的例程之前,需要重(zhong)新開啟終(zhong)端來(lai)使配置生效。
到此,安裝和配置的(de)整個過程都完成(cheng)了!
1、在終端運行命令:
licaibiao@ubuntu:~/test/OpenCV$ pkg-config --cflags --libs opencv
-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
licaibiao@ubuntu:~/test/OpenCV$
2、運行一個打開圖片的程(cheng)序。
(1)在任意位置,新建一個文(wen)件夾(jia)test。
(2)創建(jian)DisplayImage.cpp文件,并輸入(ru)以下代碼(ma),保存。
#include
#include
#include
#include
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread( argv[1], 1 );
if( argc != 2 || !image.data )
{
printf( "No image data \n" );
return -1;
}
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
imshow( "Display Image", image );
waitKey(0);
return 0;
}
(3)用CMake編(bian)譯:添加(jia)一個CMakeLists.txt 文件,內容(rong)如(ru)下,保存
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
(4)在test文件夾中右鍵,打開(kai)終(zhong)端(duan),執行(xing)以(yi)下(xia)命(ming)令(ling),生成(cheng)執行(xing)文件 DisplayImage。(這里cmake后面一個點就夠了,表示在當前目錄下(xia)執行(xing)cmake操作)
cmake .
make
(5)選擇(ze)一張(zhang)圖(tu)片,復制到test文(wen)件夾中,并且重命名為test.jpg
(6)在終端運行以下代碼
./DisplayImage test.jpg
如果以上(shang)步驟都(dou)安(an)裝和配置(zhi)成(cheng)功,可以顯(xian)示出(chu)圖片:
大功告成!
希望(wang)大(da)家都所有收獲,有所成就!
文章轉自//blog.csdn.net/jindunwan7388/article/details/80397700