首页 > 系统相关 >史上最简单 OpenCV for C++ 在 Windows 和 Ubuntu 上编译安装使用教程

史上最简单 OpenCV for C++ 在 Windows 和 Ubuntu 上编译安装使用教程

时间:2023-01-20 21:44:57浏览次数:51  
标签:编译 opencv Windows make dev OpenCV 3.4 C++

准备工作

原材料

版本信息

  • 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 桌面端直接下载解压就好了

img

编译 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

img

img

Ubuntu 桌面端和 Windows

cmake-gui + cmake 编译安装

  • 选择好 OpenCV 源码和 OpenCV 编译文件夹
  • 就可以选择 Configure

img

  • 选择 MinGW Makefiles
  • 复选框选择第二个

img

  • 这是 MinGW 中 bin 目录下的 gcc.exe 和 g++.exe 文件
  • 选择 Finish

img

  • 等他跑完

img

  • 搜索栏搜索 extra
  • 选择 opencv-contrib 下的 modules
  • 再点击 Configure,配置完成点击 Generate。
  • 一直到显示 Configuring done Generating done

img

img

  • Win+R cmd cd 到编译文件夹里
  • 输入 MinGW32-make 开始编译,也可以使用 make -j、make -j8、make -j16 等命令速度会稍快一些
  • 编译完成后,再输入 MinGW32-make install 进行安装

img

img

img

  • 编译太慢了就不展示了(下面展示的是 Ubuntu 的)

img

img

用别人已经编译好的

GitHub 仓库中有人提供已经编译好的 OpenCV,可以通过 Configuration 看到用了什么编译器、操作系统、cmake 版本
https://github.com/huihut/opencv-mingw-build

https://github.com/huihut/OpenCV-MinGW-Build/releases

img

img

标签:编译,opencv,Windows,make,dev,OpenCV,3.4,C++
From: https://www.cnblogs.com/AhtelekB/p/cplusplus-opencv.html

相关文章

  • 把KMP算法嚼碎了才利于消化!(C++)
    相信不少人在学数据结构的时候都被KMP算法搞的迷迷糊糊的,原理看的似懂非懂,代码写不出来,或者写出来了也不知道为什么就可以这么写。本文力求尽可能通俗详细的讲解KMP算法,让......
  • C++概述
    计算两个整数相加之和#include<iostream>usingnamespacestd;/*函数功能:计算两个整数相加之和*/intAdd(inta,intb){return(a+b);}//主函数intmai......
  • c++ namespace
    名字空间:名字空间有两个特征:1.顺序2.嵌套顺序:编译器和解释器相当于一个翻译官,拿着本子一行一行读代码,只有见过的名字才会记到本子上,每见过的名字他就不认识(所以C++需......
  • C#调用C++动态链接库dll之P/Invoke方式 — 1.无参无返回值函数调用
    1.新建一个C++空项目CPPTest2.新建一个PInvokeTest.cpp文件,并写下如下代码需要注意:下文中的两个函数名HelloWorld需要完全一致,只有这样才能确保被完全声明为一个其......
  • C++ Templates 中文版 电子书 pdf
    本书是C++模板编程的完全指南,旨在通过基本概念、常用技巧和应用实例3方面的有用资料,为读者打下C++模板知识的坚实基础。关注公众号:后厂村搬砖工。发送:电子书即可。......
  • C++ 基础语法2
    #include<iostream>usingnamespacestd;#include<string>#include<time.h>//结构体定义//structStudent//{//stringname;//intage;//intcount;//};//在结构体尾......
  • C++基础语法 3(面向对象、C++在执行过程当中4个区域、引用)
    #include<iostream>usingnamespacestd;//标注空间#include<string>#include<time.h>#include<cstdlib>//面向对象/*C++在执行过程当中4个区域:代码区:存放二进制代码,由操作......
  • C++基础语法4()
    #include<iostream>usingnamespacestd;//标注空间#include<string>#include<time.h>#include<cstdlib>//函数的提高1;函数的默认参数函数的形参可以有默认值!返回类型......
  • C++ 基础语法5(封装、访问权限)
    #include<iostream>usingnamespacestd;//标注空间#include<string>#include<time.h>#include<cstdlib>//C++当中面向对象三大特性:封装、继承、多态//C++当中万事万物都能......
  • c++中内存分类
    局部变量,存储位置:栈,存储时间:变量所在程序运行时间全局变量,存储位置:静态存储区,存储时间:程序运行时间static静态变量,存储位置:静态数据区,存储时间:第一次初始化到程序运行结......