在Linux下安裝C++的OpenCV 3


最近在看《學習OpenCV3》這本書,所以記錄下我在ubuntu16.4下搭建C++版本OpenCV 3.4.5的過程。首先請確保cuda,gcc, g++都安裝好了,我這里是cuda 10.0,gcc-4.9.4和gcc-5.5.0,它們之間的版本只要是配套的應該就沒問題,我原本是按照Francesco Piscani油管視頻:OpenCV C++ on Linux Tutorial 1 - OpenCV 3.2 Installation on Ubuntu 16.04 進行安裝OpenCV 3.1.0 ,但是編譯老是報錯,后面懷疑是自己用的cuda版本有點新,而以前的Opencv 3.1.0有點跟不上配置,但之后就按照Davidhwj的 linux安裝及配置c++的opencv庫 進行配置成功了。

 

安裝步驟:

1. 更新系統源

sudo apt-get update

 

2. 安裝依賴項

sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev


3. 下載OpenCV 3.4.5

官網下載地址:https://opencv.org/releases/page

之后將其解壓至根目錄下,我這里是home/下。之后創建release文件夾:

cd opencv-3.4.5

~/opencv-3.4.5$ mkdir release

 

4. 設置cmake參數

~/opencv-3.4.5/$ cd release

~/opencv-3.4.5/release/$ sudo cmake

~/opencv-3.4.5/release/$ sudo cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..

或者使用默認安裝設定:

~/opencv-3.4.5/release/$ sudo cmake ..

 

在cmake過程中常會報錯ippicv_2019_lnx_intel64_general_20180723.tgz下載超時,解決辦法就是到官方Github源碼里下載該壓縮包,之后打開opencv-3.4.5/3rdparty/ippicv/ippicv.cmake文件,然后復制下圖中選中的命名后綴:

 

在opencv-3.4.5/3rdparty/ippicv/下創建文件downloads,然后在downloads下創建文件名為linux-32e315a5b106a7b89dbed51c28f8120a48b368b4,並將之前下載的ippicv壓縮包放入該文件夾下,如下圖所示:

 

最后再次打開opencv-3.4.5/3rdparty/ippicv/ippicv.cmake文件修改原來網絡壓縮包下載地址為手動下載好壓縮包的文件地址,如下圖所示:

現在重新cmake就能成功了!

 

5. 編譯OpenCV

~/opencv-3.4.5/release/$ sudo make

~/opencv-3.4.5/release/$  sudo make install

 

6. 配置環境變量

~/opencv-3.4.5/release/$  sudo gedit /etc/ld.so.conf.d/opencv.conf

在文件內添加一行:/usr/local/lib

 

~/opencv-3.4.5/release/$ sudo ldconfig # 更新系統的共享鏈接庫

sudo gedit /etc/bash.bashrc

在bashrc里末尾加入以下兩行:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export LD_LIBRARY_PATH=/home/lp/soft/opencv-3.4.5/release/lib:$LD_LIBRARY_PATH

 

# 保存bashrc后,使其生效:

~/opencv-3.4.5/release/$ source /etc/bash.bashrc

 

7. 測試OpenCV安裝是否正確

在opencv-3.4.5/samples/cpp下創建一個測試代碼並放入一張圖片如下:

 

用下面的命令創建測試代碼:

~/opencv-3.4.5/samples/cpp$ nano ex2_1.cpp

#include <opencv2/opencv.hpp> //Include file for every supported OpenCV function

int main( int argc, char** argv ) { cv::Mat imgOriginal; imgOriginal = cv::imread("building.png"); //cv::Mat img = cv::imread("building.jpg");
    if( imgOriginal.empty() ) return -1; cv::namedWindow( "Example1", cv::WINDOW_AUTOSIZE ); cv::imshow( "Example1", imgOriginal ); cv::waitKey( 0 ); cv::destroyWindow( "Example1" ); return 0; }

 g++運行下面的命令:

~/opencv-3.4.5/samples/cpp$ g++ ex2_1.cpp -o ex2_1 `pkg-config opencv --cflags --libs`

~/opencv-3.4.5/samples/cpp$ ./ex2_1

這是如果彈出圖片,說明OpenCV安裝沒問題,可以正常使用了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM