下载opencv官网的源码sources到本地解压
https://opencv.org/releases/
安装依赖
sudo apt-get install cmake libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-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 ffmpeg
#可能需要安装的依赖
sudo apt install libjasper1 libjasper-dev
#进入opencv源码目录,创建build 目录,cd build 运行
sudo mkdir build && cd build
##
配置cmake 编译
sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/opencv -D WITH_GTK=ON -D WITH_OPENMP=ON ..
#解释每个含义
cmake -D CMAKE_BUILD_TYPE=Release # 选择发布
OPENCV_GENERATE_PKGCONFIG=YES # 创建 PKGCONFIG文件
CMAKE_INSTALL_PREFIX=/usr/local/opencv #安装路径
WITH_GTK=ON # ubuntu 上显示窗口必须加上这个
##
编译 安装
#make的-j参数,优化多核、多线程的编译,参数可以是2,4,8,16
sudo make -j8
sudo make install
#安装路径
/usr/local/opencv/include/opencv4
/usr/local/opencv/include
安装时错误
#错误信息
下列软件包有未满足的依赖关系:
libgtk2.0-dev: 依赖: libpango1.0-dev (>= 1.20) 但是它将不会被安装
依赖: libcairo2-dev (>= 1.6.4-6.1) 但是它将不会被安装
E:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
#使用 aptitude(先安装)安装 libgtk2.0-dev
sudo aptitude install libgtk2.0-dev
#运行后会出现一大堆消息,给出第一个解决方案一般是保留这些库文件,让选择y/n/q?,
这里选择“n”;然后会继续找解决方案,有时会超时找不到,点击y继续找,
直到给出得解决方案是“降级”这些库文件,选择“y”,然后等待结束就完了。
#完成后可以再输入“sudo aptitude install libgtk2.0-dev”进行测试,出现已经安装对应得库文件,说明安装成功了
##
qt编译时错误
#错误信息
libopencv_core.so.2.4 cannot open the object file
#进入/etc/ld.so.conf.d目录创建一个名字为opencv.conf的文件,再在opencv.conf文件中输入opencv的lib路径
cd /etc/ld.so.conf.d
mkdir opencv.conf
vim ./opencv.conf
#输入以下内容(有的是在/usr/local/lib)
/usr/local/opencv/lib
#最后更新配置并列出配置信息
sudo ldconfig -v
##