OPENCV入门第一步——ubuntu安装编译opencv(以及opencv_contrib)
本文使用ubuntu18.04系统,成功编译安装了opencv-4.4.0以及opencv_contrib-4.4.0
什么是opencv以及opencv_contrib
OpenCV全称Open Source Computer Vision Library,是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。
通常所说的OpenCV是指opencv的核心库,其中包括:
- core模块:实现核心数据结构与基本运算,包括绘图、数组等相关函数。
- highgui模块:实现视频、图像的读取、存储以及显示等接口。
- imgproc模块:实现基本的图像处理方法,包括滤波、几何变换、平滑处理、边缘检测、目标检测、阈值分割和对象跟踪等功能。
- core模块:实现核心数据结构与基本运算,包括绘图、数组等相关函数。
- highgui模块:实现视频、图像的读取、存储以及显示等接口。
- imgproc模块:实现基本的图像处理方法,包括滤波、几何变换、平滑处理、边缘检测、目标检测、阈值分割和对象跟踪等功能。
- stitching模块:实现图像拼接。
- features2d模块:提取图像特征以及进行特征匹配。
- photo模块:图像去噪和图像修复。
- dnn模块:深度学习模块,主要包括构建神经网络、加载序列化网络模型等。
- video模块:视频分析模块,主要包含运动估计、背景分离、对象跟踪等内容
- …
相应的,opencv_contrib称为opencv贡献库,通常opencv最新实现的功能会包含在该库中,相比于opencv核心库,opencv_contrib拥有更加完整的关于计算机视觉的算法应用,其中的各个模块之间没有相互依赖关系可以有选择性的进行编译。opencv_contrib库中的函数包括:
- aruco:检测二进制marker的库。
- bgsegm:改进的背景-前景分割算法。
- ccalib:用于 3D 重建的自定义校准模式。
- cnn_3dobj:3D目标识别和姿态估计API。
- cuda:利用GPU处理图像,结合nvidia的CUDA编程,包含以下部分。
- cvv:计算机视觉程序交互式可视化调试GUI。
- datasets:处理不同数据集的框架,用于处理不同数据集的类:加载数据、评估不同算法、包含基准测试等。
- dnn_objdetect:用于目标检测的DNN。
- dnn_superres:用于超分辨率的DNN,包含通过卷积神经网络放大图像的功能。
- face:人脸识别。
- fuzzy:基于模糊数学的图像处理。
- plot:用于Mat 数据的绘图函数。
- tracking:追踪API,该API是一个独特的接口,可用于插入多种算法并对其进行比较。
- videostab——包含一组可用于解决视频稳定问题的函数和类。
- …
(上述的列举并不完全。其中的tracking正是笔者遇到的一个大坑)
小提示
安装前需要搞清楚需求,是否需要使用到opencv_contrib库中的函数(尤其针对c++进行编程的情况)。若完全不需要,则可以参考下一部分编译安装opencv进行;若需要,则跳过下一部分,可以参考编译安装opencv以及opencv_contrib进行。如果无法进行判断可以直接参考编译安装opencv以及opencv_contrib。
笔者曾因找不到opencv2/tracking.cpp的error而苦苦探索数日[doge]
编译安装opencv
使用命令行编译安装opencv
1. 安装依赖
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 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 libatlas-base-dev gfortran
sudo apt-get install ffmpeg
2. 下载opencv源码
下载链接:opencv源码下载.
选择需要的版本下载,并解压opencv
3. 安装opencv
cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8
sudo make install
这里默认安装到了/usr/local文件夹下。
4. 配置环境
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
编译安装opencv以及opencv_contrib(使用CMake-gui)
操作与安装opencv类似,使用CMake-gui比较方便直观。具体操作参考博客.很详细,感谢作者wuyu1125.
针对上述博客中提到的~.i: No such file or directory的问题,这里给出另一篇参考 解决方案.
注意: 下载后可能出现的结果如下图所示:
出现找不到.download文件夹的情况。这时,需要打开ubuntu文件管理系统中的
显示隐藏文件选项,如图