📜  OpenCV-概述

📅  最后修改于: 2020-11-23 03:34:26             🧑  作者: Mango


OpenCV是一个跨平台的库,通过它我们可以开发实时计算机视觉应用程序。它主要专注于图像处理,视频捕获和分析,包括面部检测和物体检测等功能。

让我们从定义“计算机视觉”一词开始。

计算机视觉

可以将计算机视觉定义为一门学科,该学科根据场景中存在的结构的性质,解释如何从其2D图像重建,中断和理解3D场景。它使用计算机软件和硬件处理建模和复制人类视觉。

计算机视觉与以下领域明显重叠-

  • 图像处理-它专注于图像处理。

  • 模式识别-它解释了各种模式分类技术。

  • 摄影测量法-它涉及从图像中获取准确的测量值。

计算机视觉与图像处理

图像处理涉及图像到图像的转换。图像处理的输入和输出都是图像。

计算机视觉是根据物理对象的图像对它们进行清晰,有意义的描述的构造。计算机视觉的输出是对3D场景中的结构的描述或解释。

计算机视觉的应用

在这里,我们列出了一些主要使用计算机视觉的主要领域。

机器人应用

  • 本地化-自动确定机器人位置

  • 导航

  • 避障

  • 组装(孔内钉,焊接,喷漆)

  • 操纵(例如PUMA机器人操纵器)

  • 人机交互(HRI)-与人互动并为人服务的智能机器人

医药应用

  • 分类和检测(例如病变或细胞分类和肿瘤检测)
  • 2D / 3D分割
  • 3D人体器官重建(MRI或超声)
  • 视觉引导机器人手术

工业自动化应用

  • 工业检查(缺陷检测)
  • 部件
  • 条形码和包装标签读取
  • 对象分类
  • 文件理解(例如OCR)

安全应用

  • 生物识别(虹膜,指纹,面部识别)

  • 监视-检测某些可疑活动或行为

运输应用

  • 自动驾驶汽车
  • 安全性,例如驾驶员警惕性监控

OpenCV库的功能

使用OpenCV库,您可以-

  • 读取和写入图像

  • 捕获并保存视频

  • 处理图像(过滤,转换)

  • 执行特征检测

  • 检测视频或图像中的特定对象,例如面部,眼睛,汽车。

  • 分析视频,即估计其中的运动,减去背景,并跟踪其中的对象。

OpenCV最初是在C++中开发的。除此之外,还提供了Python和Java绑定。 OpenCV可在Windows,Linux,OSx,FreeBSD,Net BSD,Open BSD等各种操作系统上运行。

本教程通过使用Java绑定的示例说明了OpenCV的概念。

OpenCV库模块

以下是OpenCV库的主要库模块。

核心功能

该模块涵盖了用于构建OpenCV应用程序的基本数据结构,例如标量,点,范围等。除了这些,它还包括多维数组Mat ,用于存储图像。在OpenCV的Java库中,此模块作为名称为org.opencv.core的软件包提供。

图像处理

该模块涵盖各种图像处理操作,例如图像过滤,几何图像转换,色彩空间转换,直方图等。在OpenCV的Java库中,该模块作为一个名为org.opencv.imgproc的软件包提供。

视频

该模块涵盖了视频分析概念,例如运动估计,背景减法和对象跟踪。在OpenCV的Java库中,该模块作为一个名为org.opencv.video的软件包提供。

视频I / O

本模块说明使用OpenCV库的视频捕获和视频编解码器。在OpenCV的Java库中,该模块作为名为org.opencv.videoio的软件包提供。

calib3d

该模块包括有关基本多视图几何算法,单摄像机和立体相机校准,对象姿态估计,立体对应和3D重构元素的算法。在OpenCV的Java库中,该模块作为名为org.opencv.calib3d的软件包提供。

features2d

该模块包括特征检测和描述的概念。在OpenCV的Java库中,该模块作为一个名为org.opencv.features2d的软件包提供。

对象检测

该模块包括检测对象和预定义类的实例,例如面孔,眼睛,杯子,人,汽车等。在OpenCV的Java库中,该模块作为一个名为org.opencv.objdetect的包提供。

高贵

这是一个具有简单UI功能的易于使用的界面。在OpenCV的Java库中,此模块的功能包含在两个不同的软件包中,即org.opencv.imgcodecsorg.opencv.videoio

OpenCV的简史

OpenCV最初是一项英特尔研究计划,旨在为CPU密集型应用提供建议。它于1999年正式启动。

  • 2006年,它的第一个主要版本OpenCV 1.0发布了。
  • 2009年10月,发布了第二个主要版本OpenCV 2。
  • 2012年8月,非营利组织OpenCV.org收购了OpenCV。