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

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

保存后終端輸入
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)的錯誤
解決辦法:
終端輸入
sudo apt install mlocate
或者
sudo apt install locate
然后再輸入sudo updatedb就沒問題了
然后查看一下opencv的版本信息
終端輸入 注意是opencv4
pkg-config --modversion opencv4

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;
}

編譯(opencv4)
g++ test2.cpp -o test2 `pkg-config --cflags --libs opencv4`

運行
./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