01下载opencv4.5.5 ,点击source
Releases - OpenCV
02解压到opencv4.5.5文件夹,进入opencv4.5.5文件夹,ctrl + alt + T 打开终端,依次执行
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,这个网上教程很多,但是opencv4版本之后,默认配置是不生成opencv.pc,就导致我们使用起来很困难,所以我们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来进行环境变量的管理,这个软件需要.pc类型的文件作为软件配置信息,如果我们不配置,会出现opencv安装成功但是c编程无法使用的情况,Python好像可以直接使用。。,网上有部分教程说可以手写,但是其实很困难,因为库之间是有依赖关系的,所以如果顺序放错也会找不到,最好还是自动生成。
06这条命令会在build目录里生成对应配置的Makefile文件,可以看到配置信息之间是通过空格和-D来分割和标示的,配置了很多信息,我觉得比较重要的一个是 -D OPENCV_GENERATE_PKGCONFIG=ON,生成opencv.pc文件的配置(注意,opencv4生成的文件叫做opencv4.pc),另外就是 CMAKE_INSTALL_PREFIX=/usr/local这个关于安装路径的配置,这里的安装路径是在/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环境配置
修改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
可能出现的错误解决办法:
终端输入
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