一、源码安装
1.下载源码
参考博客下载了Sources压缩包,这里我选择了直接git
2. 安装依赖项
sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff5-dev libopenexr-dev libtbb-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libgtk-3-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev pkg-config
3. Cmake分析
cd opencv
mkdir build
cd build
camke ..
cmake检查完成,就会显示配置和生成已结束。
4.make编译
make -j8
(-jn n 表示编译使用的线程数量,例如:我选择的是 -j8) 其可以加快编译速度。这个过程相对比较漫长,中间可能会出现各种warning的提示,但只要最后100%就OK。
编译过程中可能遇到各种奇怪的报错,我在编译过程中的报错及解决方案放到了文章末。
5.make install 安装
sudo make install
安装速度是非常快的!
6.配置环境变量
a.修改/etc/ld.so.conf文件
sudo gedit /etc/ld.so.conf
在末尾添加:
include /usr/local/lib
/usr/local是opencv的默认安装路径,这样告诉系统以后去lib目录下找opencv的库文件。
输入命令使得conf生效
sudo ldconfig
b.修改bash.bashrc文件
sudo gedit /etc/bash.bashrc
在末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存后退出
然后source使得bash生效:
source /etc/bash.bashrc
二、测试
在vscode中新建工程
在CMakeList.txt 中添加
find_package(OpenCV REQUIRED)
target_link_libraries(<project name> ${OpenCV_LIBS})
# <project name>为工程名
工程目录:
我的测试代码:
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int, char**) {
std::cout << "Hello, world!\n";
Mat image = imread("/home/yjh/study/image/1.png");
imshow("test", image);
waitKey(0);
return 0;
}
错误解决方案
错误一:在4.make编译时报错:
解决方案:
先下载对应版本的opencv_contrib (我的版本是opencv_contrib-3.4.15)并放到opencv文件夹下
重新cmake,再继续sudo make -j4
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_1394=OFF ..