Linux 下編譯 OpenCV4


1 運行環境

  • linux 版本:統信 UOS 1030(可以認為是特殊的 ubuntu)

  • Opencv 版本:4.1.1

  • 開發語言:C++

2 編譯方式

源代碼 + cmake

3 opencv 下載

下載地址:

https://opencv.org/opencv-4-1-1/

下載截圖:

4 opencv 解壓

unzip opencv-4.1.1.zip

5 cmake 下載

opencv 4 要求 cmake 版本大於 3,根據需要下載即可

sudo apt-get cmake

此處我系統自帶 cmake 版本為 3.13.4,如下圖所示:

cmake -version

6 下載依賴

如果是缺少某個依賴文件,編譯過程也不會出錯,但是在使用 opencv 函數的時候就是提示錯誤,只能刪了重新編譯(即重走 cmake -> make ->make install),非常的坑,所以一定要先下載依賴文件。

必須要安裝的依賴,通過命令安裝:

sudo apt-get install build-essential git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

如果需要其他的功能,還需安裝一些依賴,命令如下:

sudo apt-get install python-dev python-numpy python3-dev python3-numpy

sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

7 下載 ippicv

為解決在 cmake 過程中 ippicv_2019_lnx_intel64_general_20180723.tgz 這個文件下載超級慢的問題

下載地址

鏈接:https://pan.baidu.com/s/1Mg5m7IygJvxYbjBWOmIikw

提取碼:au1o

修改 opencv 配置文件

將網絡下載的模式改為本地文件下載的模式,這樣就不用在網上下載了

# 打開終端,輸入
vim opencv-4.1.1/3rdparty/ippicv/ippicv.cmake

# 將 47 行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"
# 改為手動下載的文件的本地路徑(僅供參考,根據自己的路徑填寫,我下載的地方為 /home/zyw)

"file:/home/zyw/"

8 用 cmake 生成 makefile 文件

在 opencv-4.1.1 下新建目錄 install 作為安裝目錄,新建 build 作為 cmake 目錄

cd opencv-4.1.1

mkdir install
mkdir build

在 build目錄下執行 cmake,生成 makefile 文件:

cd build 

cmake -D CMAKE_INSTALL_PREFIX=../install/ \
-D CMAKE_BUILD_TYPE=RELEASE \
-D OPENCV_GENERATE_PKGCONFIG=On ..

opencv4 默認不生成 .pc 文件(導致無法使用 pkg-config 命令),**OPENCV_GENERATE_PKGCONFIG=ON **才會生成,因此需要開啟

cmake 需要的配置選項 可根據自己需要來修改,上述為必須的配置選項,意思是:安裝目錄為 ../install/,以 RELEASE 版本編譯,生成 .pc 文件

成功截圖:

9 編譯與安裝

編譯:

make -j4

成功截圖:

安裝:

make install

成功截圖:

10 將編譯生成的 opencv4.pc 拷貝進 /usr/lib/pkgconfig/

/usr/lib/pkgconfig/ 為 pkg-config 默認尋找目錄

查找 opencv4.pc 所在位置

find ./ -name opencv4.pc 

拷貝

sudo cp ./unix-install/opencv4.pc /usr/lib/pkgconfig/

11 配置 opencv 動態庫路徑

因為我們 opencv 的安裝目錄為 /home/zyw/opencv-4.1.1/install,而不是 opencv 默認安裝目錄 /usr/lib,因此 ldconfig 無法找到 opencv 動態庫(因為 ldconfig 默認搜尋 /lib和/usr/lib,以及配置文件/etc/ld.so.conf.d 內所列的目錄下的庫文件),因此需要添加 opencv 庫路徑目錄

sudo vim /etc/ld.so.conf.d/opencv.conf 

# 加上自己的 opencv 庫路徑目錄
/home/zyw/opencv-4.1.1/install/lib

# 保存退出

# 更新系統動態庫
sudo ldconfig

12 測試 opencv 是否安裝正常

pkg-config --cflags --libs opencv4
  • pkg-config --cflags opencv4 代表我們安裝的頭文件路徑
  • pkg-config --libs opencv4 代表我們安裝的庫文件路徑

成功截圖:

13 opencv 可用性測試

cd 你的opencv目錄/samples/cpp/

g++ `pkg-config --cflags opencv4` drawing.cpp `pkg-config --libs opencv4` -o drawing.out
./drawing.out

./drawing.out

運行效果:

13 參考資料

1、Linux下安裝OpenCV4(適用於Ubuntu等) - 小樹謙謙謙 - https://www.jianshu.com/p/f54b0fc13811

2、linux下編譯安裝opencv生成opencv.pc - 濃茶淡酒 - https://blog.csdn.net/s15810751918/article/details/107705387

3、opencv 解決ippicv下載慢的問題: ippicv_2019_lnx_intel64_general_20180723 - 高精度計算機視覺 - https://spacevision.blog.csdn.net/article/details/101632917?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_paycolumn_v3&utm_relevant_index=2

4、linux中ldconfig的使用介紹 - chenzixun0 - https://blog.csdn.net/chenzixun0/article/details/56278632

5、Linux學習筆記(十一) -- Opencv庫的編譯和安裝 - 張慕風 - https://blog.csdn.net/u014337397/article/details/80895940?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3

6、linux c++ opencv4安裝指南 - 小小小綠葉 - https://blog.csdn.net/litt1e/article/details/109954670

7、(細節項)在Linux下用正確的姿勢配置編譯安裝OpenCV - Trick大魔王 - https://zhuanlan.zhihu.com/p/118222087


免責聲明!

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



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