Ubuntu20.04.4安裝opencv4.5.5

01下載opencv4.5.5 ,點擊source
Releases - OpenCV

image.png

02解壓到opencv4.5.5文件夾,進入opencv4.5.5文件夾,ctrl + alt + T 打開終端,依次執(zhí)行

mkdir build
cd build

03安裝cmake

sudo apt-get install cmake

04安裝依賴包

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

05配置cmake( linux下編譯opencv需要cmake,有兩種方式,cmake與cmake-gui,這個網(wǎng)上教程很多,但是opencv4版本之后,默認配置是不生成opencv.pc,就導(dǎo)致我們使用起來很困難,所以我們cmake的時候可以先配置一下: 配置cmake才能生成opencv4.pc文件)

  cmake -D WITH_TBB=ON -D WITH_EIGEN=ON -D OPENCV_GENERATE_PKGCONFIG=ON ..
  cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF ..
  cmake -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF ..
  cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

注意一行一行的來,這里其他不配置都無所謂,但是 -D OPENCV_GENERATE_PKGCONFIG=ON這個配置一定要加上,Linux下我們使用opencv,需要使用pkg-config來進行環(huán)境變量的管理,這個軟件需要.pc類型的文件作為軟件配置信息,如果我們不配置,會出現(xiàn)opencv安裝成功但是c編程無法使用的情況,Python好像可以直接使用。。,網(wǎng)上有部分教程說可以手寫,但是其實很困難,因為庫之間是有依賴關(guān)系的,所以如果順序放錯也會找不到,最好還是自動生成。
06這條命令會在build目錄里生成對應(yīng)配置的Makefile文件,可以看到配置信息之間是通過空格和-D來分割和標示的,配置了很多信息,我覺得比較重要的一個是 -D OPENCV_GENERATE_PKGCONFIG=ON,生成opencv.pc文件的配置(注意,opencv4生成的文件叫做opencv4.pc),另外就是 CMAKE_INSTALL_PREFIX=/usr/local這個關(guān)于安裝路徑的配置,這里的安裝路徑是在/usr/local下,這也是opencv的默認配置。
千萬注意,最后的兩個..千萬不要刪,這個指向CMakeLists.txt所在的目錄
此時當前目錄仍是build,直接編譯安裝即可。

cmake -D WITH_TBB=ON -D WITH_EIGEN=ON -D OPENCV_GENERATE_PKGCONFIG=ON  -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF  -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=O -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

07編譯安裝

sudo make install

或者(快)

sudo make -j8
sudo make install

因為我們指定了安裝路徑,所以我們的頭文件被放在/usr/local/include/opencv4/opencv2/目錄下,我們的庫文件被放在/usr/local/lib/目錄下,可以進去查看一下這些文件是否是否存在。
08環(huán)境配置
修改opencv.conf文件,終端輸入

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

然后在文件中輸入

 /usr/local/lib
image.png

保存后終端輸入

sudo ldconfig 

更新共享鏈接庫

然后配置bash,修改bash.bashrc文件

 sudo gedit /etc/bash.bashrc

在文末加上

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

保存后退出,終端輸入以下命令使配置生效

source ~/.bashrc

更新一下

sudo updatedb

可能出現(xiàn)的錯誤
image.png

解決辦法:
終端輸入

sudo apt install mlocate

或者

sudo apt install locate

然后再輸入sudo updatedb就沒問題了
然后查看一下opencv的版本信息
終端輸入 注意是opencv4

pkg-config --modversion opencv4
image.png

09測試
新建文件夾code,進入code,右鍵在終端中打開

gedit test2.cpp

輸入以下代碼

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
  VideoCapture capture(0);
  while(1)
  {
     Mat frame;
     capture >> frame; 
     imshow("讀取視頻幀",frame);
     waitKey(30);
   }
     system("pause");
     return 0;
}
image.png

編譯(opencv4)

  g++  test2.cpp  -o  test2  `pkg-config --cflags --libs opencv4`
image.png

運行

./test2

能正常打開攝像頭即成功
可能報錯
Failed to load module canberra-gtk-module
解決(重裝此包)

sudo apt-get install libcanberra-gtk-module

https://blog.csdn.net/s15810751918/article/details/107705387
https://blog.csdn.net/public669/article/details/99044895
https://blog.csdn.net/pink_lemon/article/details/120632557?ops_request_misc=&request_id=&biz_id=102&utm_term=ubuntu20.04%E5%AE%89%E8%A3%85opencv&utm_medium=distribute.wap_search_result.none-task-blog-2allsobaiduweb~default-1-.nonecase&spm=1018.2118.3001.4187
https://blog.csdn.net/footrip/article/details/103639958

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容