天天看點

Ubuntu配置OpenCV及多版本OpenCV共存前言多版本OpenCV共存下載下傳opencv使用cmake建構庫添加到系統環境變量

用到過兩次了,每次都要重新找資料,在這裡記錄一下,下次用到就不用再找教程了。

前言

在開發不同工程時可能會需要不同版本的OpenCV,是以在電腦上安裝多個版本的OpenCV很有必要。

多版本OpenCV共存

假設我們已經安裝好一版OpenCV,一般都安裝在

/usr/local

下。

如果需要安裝另一個版本的OpenCV,就不能再安裝到

/usr/local

,而是選擇其他路徑,否則會覆寫掉之前的版本。

下載下傳opencv

首先去Releases - OpenCV下載下傳所需版本的Sources版

我安裝的第二個OpenCV版本為3.2.0。

安裝依賴包

[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
           

使用cmake建構庫

cd opencv-3.2.0
mkdir build
cd build
cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=~/opencv-3.4.1/build/installed \
-DWITH_CUDA=OFF \
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \ 
..
make -j
sudo make install
           

1. 其中

~/opencv-3.4.1/build/installed

為安裝OpenCV3.4.1的路徑,這個十分關鍵。

2. 設定OFF的理由如下,可大大加快編譯速度,當然還要根據需求進行設定。

sudo make install ,這一步一定要運作,否則在自己設定的安裝路徑下則不會出現我們需要的編譯檔案夾。

添加到系統環境變量

修改

~/.bashrc

#OpenCV_4.2.0
export PKG_CONFIG_PATH=~/opencv-3.2.0/build/installed/lib/pkgconfig
export LD_LIBRARY_PATH=~/opencv-3.2.0/build/installed/lib
           

更新~/.bashrc

source ~/.bashrc 
           

查詢OpenCV版本

pkg-config --modversion opencv
           

如果輸出

3.2.0

,就表明配置成功。

如果想使用之前的版本,在

~/.bashrc

中注釋掉增加的内容,然後

source ~/.bashrc

即可。

應用:

如果隻有一個版本的OpenCV,在CMakeList.txt中使用以下語句即可。

FIND_PACKAGE(OpenCV REQUIRED)
           

在OpenCV編譯好後,所在目錄中會生成OpenCVConfig.cmake檔案,這個檔案中指定了CMake要去哪裡找OpenCV,其.h檔案在哪裡等。

存在多版本OpenCV時,需要找到所需版本對應的OpenCVConfig.cmake檔案,并将其路徑添加到工程的CMakeLists.txt中。

cmake_minimum_required(VERSION 2.8)  
set(OpenCV_DIR /usr/local/opencv_3.2.0/share/OpenCV)
project(test)    
find_package(OpenCV_DIR REQUIRED) 
message("OpenCV version  is : ${OpenCV_VERSION}")
           

 在set的時候,一定要設定OpenCVConfig-version.cmake所在的位置

                        一定要設定OpenCVConfig-version.cmake所在的位置

                        一定要設定OpenCVConfig-version.cmake所在的位置

,我在網上找到的幾個教程中,set的内容寫的不是該檔案的位置,雖然可以編譯成功,但是在代碼運作的時候,會出現錯誤,使用的opencv版本總是不是我想要的。

參考資料:

(1條消息) Ubuntu下多版本OpenCV共存和切換_W_Tortoise的部落格-CSDN部落格_ubuntu 多版本opencv

 Ubuntu配置OpenCV及多版本OpenCV共存 | 所念皆星河

繼續閱讀