史上最简单 OpenCV for C++ 在 Windows 和 Ubuntu 上编译安装使用教程
准备工作
原材料
- Ubuntu 系统(非必须,Windows 也可以,主要是 Ubuntu 适合编译)
- OpenCV 3.4.1 压缩包
- OpenCV contrib 3.4.1 压缩包
- MinGW(Windows 上运行 GCC)
版本信息
- GCC 版本 7.5.0
- G++ 版本 7.5.0
- OpenCV 版本 3.4.1
- Cmake 版本 3.10
编译组件和依赖包的安装(Windows 请跳过)
sudo apt install -y build-essential ccache cmake doxygen g++ gcc git libavcodec-dev libavformat-dev libavresample-dev libdc1394-22-dev libgphoto2-dev libgtk2.0-dev libjasper-dev libjpeg-dev libjpeg.dev libopenblas-base libopenblas-dev libpng-dev libswscale-dev libtbb2 libtbb-dev libtiff-dev libtiff5.dev libv4l-dev libvtk5-dev libvtk6-dev openjdk-8-jdk pkg-config pylint python-dev python-numpy qt5-default
下载并解压 OpenCV 和 OpenCV Contrib
# Ubuntu 命令行 和 Ubuntu 桌面
wget https://github.com/opencv/opencv/archive/3.4.1.zip
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/3.4.1.zip
unzip opencv-3.4.1.zip
unzip opencv_contrib-3.4.1.zip
# Windows 和 Ubuntu 桌面端直接下载解压就好了
编译 OpenCV 源码
Ubuntu 命令行
cmake 命令行编译安装
# 新建编译文件夹
mkdir opencv-3.4.1-build
# 通过 cd 命令进入编译文件夹
cd opencv-3.4.1-build
# CMAKE_INSTALL_PREFIX 是 OpenCV 的安装位置
# OPENCV_EXTRA_MODULES_PATH 是 opencv_contrib-3.4.1 的 modules 文件夹
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/ahtelek/OpenCV/opencv_contrib-3.4.1/modules/ -D BUILD_TIFF=ON ..
# make 编译,也可以使用 make -j、make -j8、make -j16 等命令速度会稍快一些
sudo make
# 安装
sudo make install
Ubuntu 桌面端和 Windows
cmake-gui + cmake 编译安装
- 选择好 OpenCV 源码和 OpenCV 编译文件夹
- 就可以选择 Configure
- 选择 MinGW Makefiles
- 复选框选择第二个
- 这是 MinGW 中 bin 目录下的 gcc.exe 和 g++.exe 文件
- 选择 Finish
- 等他跑完
- 搜索栏搜索 extra
- 选择 opencv-contrib 下的 modules
- 再点击 Configure,配置完成点击 Generate。
- 一直到显示 Configuring done Generating done
- Win+R cmd cd 到编译文件夹里
- 输入 MinGW32-make 开始编译,也可以使用 make -j、make -j8、make -j16 等命令速度会稍快一些
- 编译完成后,再输入 MinGW32-make install 进行安装
- 编译太慢了就不展示了(下面展示的是 Ubuntu 的)
用别人已经编译好的
GitHub 仓库中有人提供已经编译好的 OpenCV,可以通过 Configuration 看到用了什么编译器、操作系统、cmake 版本
https://github.com/huihut/opencv-mingw-buildhttps://github.com/huihut/OpenCV-MinGW-Build/releases