您當前的位置:首頁 > 舞蹈

(細節項)在Linux下用正確的姿勢配置編譯安裝OpenCV

作者:由 Trick大魔王 發表于 舞蹈時間:2020-03-27

更新時間:2021-11-8

測試機:物理機

OS:Ubuntu 20。04

測試結果:配置測試成功

Note:重新編排了內容,補充一些小問題。

第一步 :下載依賴

這一步非常重要,如果是缺少某個依賴檔案,編譯過程也不會出錯,但是在使用opencv函式的時候就是提示錯誤,只能刪了重新編譯,非常的坑。

所以一定要先下載依賴檔案。

所以一定要先下載依賴檔案。

所以一定要先下載依賴檔案。

透過以下命令來安裝依賴檔案,新建一個shell指令碼:download。sh,寫入以下內容。

#!/bin/bash

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

修改download。sh許可權並且執行指令碼

sudo chmod

777

。/download。sh、

。/download。sh

第二步:下載原始碼

從GitHub下載opencv和opencv_contrib原始碼。

如果你是剛剛安裝Linux OS,那麼最好就是修改源,不然下載會非常非常慢。具體操作請移步百度:

如何修改Linux源。

我這裡用的都是4。2。0的版本。

OpenCV和contirb的原始碼下載路徑:

使用git clone下來,或者直接使用zip下載都可以,使用zip下載可能會出現下載不完全的情況(起碼我是這樣的),往往出現的問題是缺少boostdesc_bgm。i檔案等問題(出現這個問題是由於網路問題)。所以我們需要提前下載好這些檔案,以防不時之需。檔案我已經集合在了我的GitHub裡面。

GitHub地址(歡迎大佬給小星星):

第三步:(可選)解壓opencv和opencv_contirb(git clone 不用):

tar -zxvf opencv-4。2。0。tar。gz

tar -zxvf opencv_contirb-4。2。0。tar。gz

第四步:移動

把opencv_contrib檔案移動到opencv資料夾裡:

sudo cp -r opencv_contrib-4。2。0 opencv-4。2。0

在opencv資料夾裡面新建一個資料夾bulid,然後進入這個資料夾。

sudo mkdir build

cd

bulid

第五步:生成makefile檔案

為了輸入方便,在這裡用新建一個shell指令碼然後執行

#新建指令碼,名字任意

vim cmake_build。sh

#寫入命令內容,請替換 OPENCV_EXTRA_MODULES_PATH的真實路徑

#!/bin/bash

#!/bin/bash

cmake

\

-D

CMAKE_BUILD_TYPE

=

RELEASE

\

-D

OPENCV_GENERATE_PKGCONFIG

=

ON

\

-D

WITH_TBB

=

ON

\

-D

WITH_EIGEN

=

ON

\

-D

WITH_GTK

=

ON

\

-D

WITH_OPENGL

=

ON

\

-D

WITH_V4L

=

ON

\

-D

WITH_OPENCL

=

OFF

\

-D

WITH_CUDA

=

OFF

\

-D

BUILD_NEW_PYTHON_SUPPORT

=

ON

\

-D

BUILD_DOCS

=

ON

\

-D

BUILD_TESTS

=

OFF

\

-D

BUILD_PERF_TESTS

=

OFF

\

-D

BUILD_EXAMPLES

=

OFF

\

-D

BUILD_opencv_gpu

=

OFF

\

-D

BUILD_opencv_gpuarithm

=

OFF

\

-D

BUILD_opencv_gpubgsegm

=

OFF

\

-D

INSTALL_PYTHON_EXAMPLES

=

ON

\

-D

INSTALL_C_EXAMPLES

=

ON

\

-D

CMAKE_BUILD_TYPE

=

RELEASE

\

-D

CMAKE_INSTALL_PREFIX

=

/usr/local/

\

-D

OPENCV_EXTRA_MODULES_PATH

=

/home/cv/CppProjects/opencv_4。x/opencv_contrib/modules/ 。。

#修改許可權

sudo chmod

777

。/cmake_build。sh

#執行

。/cmake_build_sh

這裡的命令不要原封不動的貼上複製,要根據自己的路徑進行修改,比如我的opencv資料夾是在/home/ai下,這個過程大概需要幾十秒就可以完成,cmake編譯過程會下載一些檔案,如果網路良好的話下載檔案應該全部完整,如果提示無法下載xxx。i檔案,重複多試幾次就可以了。

如果實在不能下載完全檔案的可以手動把。i檔案放入原始碼資料夾內。

#進入之前下載好的。i資料夾

cd

xxx/xxx/OpenCV-boostdesc-vgg-i

#複製檔案到對應位置

sudo cp 。/* xxx/xxx/opencv_4。2。0/opencv_contrib-4。2。0/modules/xfeatures2d/src/

第六步:make編譯安裝

我的機子是8核的所以是-j8,這個根據自己的機子進行選擇,多核心編譯能加快速度。大概需要5多分鐘吧。

#重新回到opencv/build資料夾

cd

xxx/xxx/opencv_4。2。0/build

#編譯安裝

sudo make -j8

sudo make install

第七步:(可選)錯誤處理(這裡不是每個人都會遇到,沒遇到就不用看這一步)

繼續等待,然後在大概95%的時候繼續報錯(@_@;),這個時候系統提醒你缺少某hpp檔案,不要擔心,這個檔案不需要下載,直接可以在opencv資料夾中找到。

這個問題可能是由於網路檔案,下載不完全,我第一次的時候遇到了,第二次用git clone就沒有。

透過命令開啟opencv_contrib檔案:

cd

xxx/xxx/opencv-4。2。0/opencv_contrib-4。2。0/modules/xfeatures2d/test

你會發現你並沒有features2d資料夾,這個資料夾在/opencv-4。2。0/modules裡面。

使用命令移動這個資料夾到缺失目錄下:

sudo cp -r opencv-4。2。0/modules/features2d opencv-4。2。0/opencv_contrib-4。2。0/modules/xfeatures2d/test

這下子基本問題全部解決了,繼續執行make -j8命令編譯。然後就可以看到100%編譯完成。

接著就是繼續安裝:

sudo make install

第八步:配置路徑

執行下面命令配置環境變數,注意如果你當前使用的是fish shell,或者別的shell,請退出到bash,不然配置會出問題。

查詢opencv4。pc檔案,在/usr/local/lib/目錄下建立pkgconfig目錄,然後將build資料夾下編譯生成的opencv4。pc 複製進/usr/local/lib/pkgconfig

find 。/ -name opencv4。pc

檢查在系統中是否能找到標頭檔案

pkg-config ——cflags opencv4

pkg-config ——libs opencv4

配置環境,這個時候你可能開啟opencv。conf可能是空白的,沒有關係,在檔案末尾新增儲存並退出,沒有這個檔案就自己建立一個。

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

#在opencv。conf中新增內容:

/usr/local/lib

執行生效命令:

sudo ldconfig

繼續開啟:

sudo vim /etc/bash。bashrc

在檔案末尾新增寫入:

export

PKG_CONFIG_PATH

=

$PKG_CONFIG_PATH

:/usr/local/lib/pkgconfig

儲存退出。

執行更新命令:

source

/etc/bash。bashrc

sudo updatedb

整個時候就完成了整個opencv的編譯配置。完結散花✧(≖ ◡ ≖✿)

第九步:測試

opencv內部集成了很多測試demo,可以透過執行這些demo看是否完成opencv的配置。

透過命令進入到demo中:

cd

opencv-4。2。0/samples/cpp/example_cmake

我們就稍微的修改一下程式碼,讓程式顯示一張圖片就好了。

sudo vim example。cpp

(細節項)在Linux下用正確的姿勢配置編譯安裝OpenCV

修改儲存後退出進行編譯操作。

sudo mkdir bulid

cd

bulid

sudo cmake 。。

sudo make

(細節項)在Linux下用正確的姿勢配置編譯安裝OpenCV

編譯完以會得到一個可執行檔案,執行後就可以看見圖片了。

。/opencv_example

(細節項)在Linux下用正確的姿勢配置編譯安裝OpenCV

好了,以上全部是在Linux下安裝並編譯opencv的全部過程,雖然坑有點多,但是多操作幾次就習慣了。如果在測試的時候還是沒辦法使用opencv,請認真比對我給出的過程。

感謝大家觀看!

標簽: opencv  dev  sudo  檔案  資料夾