首先展示一下我電腦的信息:
zhaocake@zhaocake-BoDE-WXX9 ~ uname -a
Linux zhaocake-BoDE-WXX9 5.19.0-46-generic #47~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jun 21 15:35:31 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
下載源碼?
opencv-4.8.0.zip:?https://codeload.github.com/opencv/opencv/zip/refs/tags/4.8.0
opencv-contrib-4.8.0.zip:?https://codeload.github.com/opencv/opencv_contrib/zip/refs/tags/4.8.0
?安裝依賴和cmake工具等
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
后面我發(fā)現(xiàn)在安裝擴展庫時還有一部分依賴沒有裝。
sudo apt-get install libgtk-3-dev
sudo apt-get -y install libgstreamer-plugins-base1.0-dev
sudo apt-get -y install libgstreamer1.0-dev
?關(guān)于你缺少了什么依賴,可以通過閱讀cmake時的輸出來看,cmake的命令在后文。
解壓,準備編譯
將下載下來的源碼解壓,并將contrib源碼文件夾移動到opencv文件夾中。
?在這個opencv-4.8.0文件夾下,進入準備編譯的文件夾。
mkdir build && cd build
注意:如果你不想安裝opencv的其他一些語言的接口,可以自行參考下面的命令。(也可以修改CMakeList.txt文件來達到目的)
指定編譯類型,并將編譯后的庫安裝到/usr/local/中
sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.8.0/modules -D BUILD_JAVA=OFF -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=OFF CMAKE_INSTALL_PREFIX=/usr/local ..
這時會輸出很多信息,生成make。
進行編譯
sudo make -j8
sudo make 是單線程,使用-j可以指定線程數(shù),加快速度。一般來說,可以把線程數(shù)取為cpu核心數(shù)的兩倍。
需要等待一會。等待時間與線程數(shù)和cpu的性能有關(guān)。
安裝到/usr/local
sudo make install
?然后可以看到庫已經(jīng)安裝到了目標目錄了。
配置導(dǎo)入路徑
sudo gedit /etc/ld.so.conf
在打開的文件后面添加/usr/local/lib,然后用下面的命令加載更新后的配置。
sudo ldconfig
配置環(huán)境
修改rc文件。我是zsh的shell,所以是.zshrc。
對于大多數(shù)情況:
vim ~/.bashrc
在文件末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
?使用命令查看opencv的安裝情況。
pkg-config opencv --modversion
出現(xiàn)如下情況。?
?進行解決:
cd /usr/local/lib
sudo mkdir pkgconfig # 如果已經(jīng)存在則不需要再創(chuàng)建
cd pkgconfig
sudo vim opencv.pc
寫入以下信息:
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: opencv
Description: The opencv library
Version:4.8.0
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
~
再次修改~/.bashrc,添加:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
注意:不要忘了更新rc文件。
最后驗證
在目錄編譯目錄opencv/samples/cpp/example_cmake中。
運行下列命令檢驗:?
cmake .
make
./opencv_example
?在clion中:
?并不報錯。但是這時不能夠直接導(dǎo)入opencv2/opencv.hpp,我們還需要添加一個軟鏈接。
sudo ln -s /usr/local/include/opencv4/opencv2 /usr/include
如果你處理不當導(dǎo)致了一些錯誤,那么可以另外參考一些文章來刪除這個軟鏈接并更具你自己的目錄進行鏈接。
Linux怎么取消軟鏈接_ln取消軟連接_dufufd的博客-CSDN博客
附:確定contrib安裝成功
當然,你也可以寫一段代碼根據(jù)是否運行來確定是否安裝成功。文章來源:http://www.zghlxwxcb.cn/news/detail-770754.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-770754.html
到了這里,關(guān)于Ubuntu 下 opencv4.8.0 (包含拓展庫) 的編譯安裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!