1. 程式人生 > >Ubuntu14.04下OpenCV3.4+contrib modules和OpenCV2.4.13的多版本共存

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檔案所在的準確路徑。

希望能幫到大家,跟我一樣的初學者要有耐心,步驟一點點看,千萬別煩躁。