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