【OpenCV】00-OpenCV概述

什么是OpenCV

OpenCV是一个开源的计算机视觉库可以从http://opencv.org 获取。

OpenCV怎么用

什么是计算机视觉

计算机视觉旧这种技术可以将静止图像或视频数据转换为一种决策或新的表示。

OpenCV的起源

OpenCV缘起于英特尔。

OpenCV的结构

OpenCV是由层级结构组织的

0penCV层级结构及其交待的操作系统
处于最上层的是OpenCV和操作系统的交互。接下来是语言绑定和示例应用程序。再下一层是opencv_contrib模块所包含的OpenCV 由其他开发人员所贡献的代码,其包含大多数高层级的函数功能。这就是OpenCV 的核心。底层是基于硬件加速层 (HAL) 的各种硬件优化。

使用IPP加速OpenCV

如果在英特尔的处理器上使用, OpenCV就会自动使用 种免费的英特尔集成性能原语库(IPP) 的子集, IPP 8.x(IPPICV)o IPPICV可以在编译阶段链接到JOpenCV ,这样一来,会替代相应的低级优化的 语言代码(在cmake 中设置WITH-IPP=ON/OFF开启或者关闭这一功能,默认情况为开启)。使用IPP获得的速度提升非常可观,下图显示了使用IPP之后得到的加速效果。

OpenCV Intel Haswell处理器上使用 IPPICV时的加速效果

OpenCV Intel Haswell处理器上使用 IPPICV时的加速效果

下载和安装OpenCV

在OpenCV官方网站 ([http: // opencv. org](http: // opencv. org)) 可以下载最新的且完整的源码以及大部分的release 版本源码。下载链接可以通过下载页面 (http://opencv.org/downloads .html)

OpenCV主要模块

模块说明
Core包含OpenCV库的基础结构以及基础操作
Improc图像处理模块。包含基本的图像转换、滤波以及类似的卷积操作
Highgui用来显示图像,包含简单的用户交互函数。是一个清凉的Windows UI工具包
Video包含读写视频流的函数
Calib3d包括单目、双目、多个相机校准的算法实现
Feature2d用于检测、描述以及匹配特征点的算法
Objectdetect用于目标检测。如人脸或行人的检测算法,也可以训练检测器用于检测其他物体
ML机器学习模块。包含大量的机器学习算法实现,并且这些算法能和OpenCV的数据类型进行转换交互
Flann快速近邻库。一般不会直接使用,其他模块的函数会使用到,如在数据集中进行最邻近搜索时调用
GPU主要是函数在CUDA GPU上的优化实现
Photo计算摄影学的一些函数工具
Stitching图像拼接流程实现
Nonfree受专利保护或使用限制的算法
Contrib还没有被集成进OPenCV的功能
Legacy一些老的尚未被取消的东西。在OpenCV3.0中被取消
Ocl实现了开放并行编程的Khronos OpenCL标准,可以运行在除了Nividia GPU设备上外,可以在任何GPU或者搭载Khronos的并行设备上运行

头文件

OpenCV主要模块头文件及说明:

头文件包含路径说明
#include lopencv2/core/core_c.h"旧式C风格的结构以及运算
#include “opencv2/core/core.hpp”新式C++风格的结构以及数学运算
#include “0penCv2/flann/mini ann.hpp”最邻近搜索匹配函数
#include “opencv2/imgproc/imgproc_c.h”旧式C风格的图像处理函数
#include “0penCV2/imgproc/imgproc.hpp”新式C++风格图像处理函数
#include “0penCV2/video/photo.hpp”操作和恢复照片相关算法
#include “0penCv2/video/video.hpp”视觉追踪以及背景分割
#include “opencv2/features2d/features2d.hpp”二维特征跟踪支持
#include “0penCV2/objdetect/objdetect.hpp”级联人脸分类器、latent SVM分类器、Hog特征和平面片检测器
#include “opencv2/calib3d/calib3d.hpp”标定校准及双目视觉相关
#include “opencv2/ml/ml.hpp”机器学习、聚类及模式识别相关
#include “opencv2/highgui/highgui_c.h”旧式C风格的显示、滑动条、鼠标操作及输入输出相关
#include “opencv2/highgui/highgui.hpp”新式C++风格的显示、滑动条、鼠标操作及输入输出相关
#include “opencv2/contrib/contrib.hpp”用户贡献的代码:皮肤检测、模糊Mean-Shift追踪、spin image算法及自相似特征等
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值