文章來源:http://www.zghlxwxcb.cn/news/detail-838568.html
前言
我是在虛擬機(jī)上跑的 Linux 5.8.0-44-generic。 配置如下:
目錄
第一步:下載依賴文件
第二步:下載 opencv 和 opencv_contrib 源碼
第三步:解壓縮包
第四步:移動(dòng)文件
第五步:生成 makefile 文件
第六步:進(jìn)行 make 編譯
第七步:配置路徑
第八步:測(cè)試 opencv
第一步:下載依賴文件
這一步非常重要,如果是缺少某個(gè)依賴文件,編譯 過程也不會(huì)出錯(cuò),但是在使用 opencv 函數(shù)的時(shí)候就是提示錯(cuò)誤,只能刪了重新編譯,非常的坑。 所以一定要先下載依賴文件。
通過以下命令來安裝依賴文件。
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config
libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2
libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev
libdc1394-22-dev
sudo apt-get install libavcodec-dev libavformat-dev
libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install ffmpeg
第二步:下載 opencv 和 opencv_contrib 源碼
從 GitHub 下載 opencv 和 opencv_contrib 源碼,如果你是剛剛 安裝 Linux,那么最好就是修改源,不然下載會(huì)非常非常慢。
具體操作請(qǐng)移步百度: 如何修改 Linux 源。
我這里用的都是 4.2.0 的版本。
OpenCV和contirb 的源碼下載路徑:
- OpenCV:https://github.com/opencv/opencv/releases
- opencv_contrib:https://github.com/opencv/opencv_contrib/releases
然而在下載過程中可能會(huì)出現(xiàn)下載不完全的情況(起碼我是這樣的),往往出現(xiàn)的問題是缺少 boostdesc_bgm.i 等問題。所以我們需要提前下載好這些文件,以防不時(shí)之需。文件我已經(jīng)集合在了我的百度網(wǎng)盤里面。當(dāng)然了如果不想自己配置opencv環(huán)境,我也在下面資源地址中給出了已經(jīng)配置好opencv環(huán)境的ubuntu虛擬機(jī)【20多個(gè)G,登錄密碼:123456】。
資源獲?。宏P(guān)注公眾號(hào)【科創(chuàng)視野】回復(fù)關(guān)鍵字: opencv
下載完以后應(yīng)該是這樣子的:
第三步:解壓縮包
通過命令解壓 opencv 和 opencv_contirb
tar -zxvf opencv-4.5.1.tar.gz
tar -zxvf opencv_contirb-4.5.1.tar.gz
然后可以得到這樣的兩個(gè)文件夾:
第四步:移動(dòng)文件
通過命令把 contrib 文件移動(dòng)到 opencv 文件夾里面:
sudo cp -r opencv_contrib-4.5.1 opencv-4.5.1
打開 opencv 里面應(yīng)該是長(zhǎng)這個(gè)樣子的:
通過命令,在 opencv 文件夾里面新建一個(gè)文件夾 bulid,然后進(jìn)入這個(gè)文件夾。
sudo mkdir build
cd bulid
第五步:生成 makefile 文件
使用命令生成 makefile 文件,這里的命令不要原封不動(dòng)的粘貼復(fù)制,要根據(jù)自己的路徑進(jìn)行修改,比如我 的 opencv 文件夾是在/home/omega-lee/下,就可以像下面那樣寫。這 個(gè)過程大概需要幾十秒就可以完成。
【johnnywei@UbJohnnywei:~/OpenCV_Source/opencv-4.5. 1/build】$ sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/johnnywei/Ope nCV_Source/opencv-4.5.1/opencv_contrib-4.5.1/modules/ ..
第六步:進(jìn)行 make 編譯
我的虛擬機(jī)是 4 核的所以是 j4,這個(gè)根據(jù)自己的機(jī)子進(jìn)行選擇,多核心 編譯能加快速度。大概需要 30 多分鐘吧。?
sudo make -j4
在進(jìn)行 make 的時(shí)候,大概到 77%左右就會(huì)出現(xiàn)錯(cuò)誤,提示你缺少.i 文件。這個(gè)時(shí)候打開之前下載好的.i 文件夾,通過命令移植到缺失目錄下。
[ 77%] Building CXX object modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/boostdesc. cpp.o /home/johnnywei/OpenCV_Source/opencv-4.5.1/opencv_contrib-4.5.1/ modules/xfeatures2d/src/boostdesc.cpp:654:20: fatal error: boostdesc_bgm.i: 沒有那個(gè)文件或目錄 654 | #include "boostdesc_bgm.i" | ^~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/build.make:9 4 : modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/boostdesc. cpp.o] 錯(cuò)誤 1 make[1]: *** [CMakeFiles/Makefile2:6818 : modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/all] 錯(cuò)誤 2 make: *** [Makefile:163:all] 錯(cuò)誤 2 johnnywei@UbJohnnywei:~/OpenCV_Source/opencv-4.5.1/build$
執(zhí)行拷貝的命令
【johnnywei@UbJohnnywei:~/OpenCV_Source/OpenCV_boo stdesc_file】$ sudo cp * ../opencv-4.5.1/opencv_contrib-4.5.1/modules/xfeatures2d /src/
移植完以后應(yīng)該長(zhǎng)這個(gè)樣子:
然后繼續(xù)執(zhí)行編譯命令:
sudo make -j4
繼續(xù)等待,然后在大概 95%的時(shí)候繼續(xù)報(bào)錯(cuò),這個(gè)時(shí)候系統(tǒng)提醒你缺少某 hpp 文件,不要擔(dān)心,這個(gè)文件不需要下載,直接可以在 opencv 文件夾中 找到。
通過命令打開 opencv_contrib 文件:
cd ./opencv-4.5.1/opencv_contrib-4.5.1/modules/xfe
atures2d/test
你會(huì)發(fā)現(xiàn)你并沒有 features2d 文件夾,這個(gè)文件夾在 /opencv-4.5.1/modules 里面。
使用命令移動(dòng)這個(gè)文件夾到缺失目錄下:
【johnnywei@UbJohnnywei:~/OpenCV_Source】$ sudo cp -r opencv-4.5.1/modules/features2d/ opencv-4.5.1/opencv_contrib-4.5.1/modules/xfeatures2d/te st/
這下子基本問題全部解決了,繼續(xù)執(zhí)行 make -j4 命令編譯。然后就可 以看到 100%編譯完成。
接著就是安裝,使用命令進(jìn)行安裝:
sudo make install
johnnywei@UbJohnnywei:~/OpenCV_Source/opencv-4.5.1/build$ sudo make install
第七步:配置路徑
配置路徑,執(zhí)行下面命令配置環(huán)境變量,注意如果你當(dāng)前使用的是 fish shell,或者別的 shell,請(qǐng)退出到 bash,不然配置會(huì)出問題。
sudo vim/etc/ld.so.conf.d/opencv.conf
這個(gè)時(shí)候你可能打開文件可能是空白的,沒有關(guān)系,在文件末尾添加保存并退出 /usr/local/lib 執(zhí)行生效命令:
sudo ldconfig
繼續(xù)打開:
sudo vim /etc/bash.bashrc
在文件末尾添加寫入:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local /lib/pkgconfig
保存退出。
執(zhí)行更新命令:
source /etc/bash.bashrc sudo updatedb
整個(gè)時(shí)候就完成了整個(gè) opencv 的編譯配置。完結(jié)散花? (? ? ? ?)
第八步:測(cè)試 opencv
opencv 內(nèi)部集成了很多測(cè)試 demo,可以通過執(zhí)行這些 demo 看是否 完成 opencv 的配置。 通過命令進(jìn)入到 demo 中:
cd opencv-4.2.0/samples/cpp/example_cmake
因?yàn)樘摂M機(jī)可能使用不了攝像頭的原因,我們就稍微的修改一下代碼, 讓程序顯示一張圖片就好了。
sudo vim example.cpp
修改保存后退出進(jìn)行編譯操作。
sudo mkdir bulid
cd bulid
sudo cmake ..
sudo make
編譯完以會(huì)得到一個(gè)可執(zhí)行文件,執(zhí)行后就可以看見圖片了。
好了,以上全部是在 Linux 下安裝并編譯 opencv 的全部過程,雖然坑 有點(diǎn)多,但是多操作幾次就習(xí)慣了。如果在測(cè)試的時(shí)候還是沒辦法使用 opencv,請(qǐng)認(rèn)真比對(duì)我給出的過程。
文章來源地址http://www.zghlxwxcb.cn/news/detail-838568.html
到了這里,關(guān)于【OpenCV】如何在Linux操作系統(tǒng)下正確安裝 OpenCV的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!