Ubuntu14.04下OpenCV3.4+contrib modules和OpenCV2.4.13的多版本共存
需要用到OpenCV的3版本和2版本,這兩個版本差別還挺大。這兩天在OpenCV這裡就遇到了很多坑,想寫一個最完整的配置環境的過程,希望給其他人帶來一些幫助。
一.安裝OpenCV2.4.13
1.安裝編譯工具
sudo apt-get install build-essential
2.安裝依賴包
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
3.安裝可選包(我都裝了)
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
4.下載OpenCV2.4.13
https://github.com/Itseez/opencv/archive/2.4.13.zip
5.安裝編譯
進入下載的安裝包opencv-2.4.13
cd opencv-2.4.13
新建一個資料夾release
mkdir release
進入該資料夾
cd release
開始編譯
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
注意這裡的CMAKE_INSTALL_PREFIX=/usr/local,就是安裝路徑在/usr/local下,接下來安裝的OpenCV3.4的安裝路徑跟這個有區別,這也是多版本共存的關鍵。
接下來
make -j4
sudo make install
6.環境配置
將opencv的庫加入到路徑,從而然系統可以找到 sudo gedit /etc/ld.so.conf.d/opencv.conf 末尾加入/usr/local/lib,儲存退出 sudo ldconfig 使配置生效 sudo gedit /etc/bash.bashrc 末尾加入 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH 儲存退出 sudo source /etc/bash.bashrc #使配置生效
二.安裝OpenCV3.4.0+contrib modules
1.下載安裝包
git clone https://github.com/Itseez/opencv.git git clone https://github.com/Itseez/opencv_contrib.git
2.安裝編譯
OpenCV包的資料夾名為opencv-master,contrib modules的資料夾名為opencv_contrib-master,先將opencv_contrib-master複製到opencv-master資料夾中
cp -r opencv_contrib-master opencv-master然後執行下面的命令(跟安裝OpenCV2.4.13差不多)
cd opencv-master
mkdir release
cd release
然後開始編譯,首先在/usr/local/路徑下新建一個opencv3.4的資料夾,然後再執行下面的命令。在編譯的時候要把opencv_contrib-master模組一起編譯了,並且注意安裝路徑。(編譯contrib模組的時候會遇到ippicv無法下載的情況,參考這個教程,把ippicv下載好,點我)cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4 -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-master/modules/ ..CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4這個命令就是將安裝路徑選擇在我們建立的opencv3.4這個資料夾下
三.CMakeLists.txt檔案的編寫
使用opencv2.4.13時(usr/local資料夾下)
find_package(OpenCV REQUIRED )
使用改變路徑的opencv3.4.0時(opencv3.4資料夾下)
set(OpenCV_DIR /usr/local/opencv3.4/share/OpenCV)
find_package( OpenCV 3.4.0 REQUIRED )
set(OpenCV_DIR /usr/local/opencv3.4/share/OpenCV)這一句有坑,因為這裡填寫的是OpenCVConfig.cmake檔案所在的路徑,我的在這裡,你們要確定一下這個檔案的路徑到底在哪,否則會出錯。
四.總結
其實在opencv2.4.13的安裝基本沒什麼問題,網上的方法大都可以安裝並使用。
但是安裝OpenCV3.4時要注意以下幾個問題
1.要安裝contrib模組,否則opencv3有些功能不能用。
2.contrib在編譯的時候會遇到ippicv不能下載的情況,這裡要參考我給的連結,注意MD5檢驗問題,每個人的校驗值不一樣。
3.在多版本切換使用,編寫CMakeLists.txt檔案的時候,注意set(OpenCV_IDR )這個命令裡的路徑,填寫的是OpenCVConfig.cmake檔案所在的路徑。這個問題很坑,我在網上找的是opencv3.1或3.2版本的安裝,他們的路徑大都填寫大都是/usr/local/opencv3.4/share,但我在share資料夾中沒有找到OpenCVConfig.cmake檔案,而是在下一級目錄OpenCV這個資料夾中,所以在填寫路徑的時候一定確認你要使用的opencv版本的OpenCVConfig.cmake檔案所在的準確路徑。
希望能幫到大家,跟我一樣的初學者要有耐心,步驟一點點看,千萬別煩躁。