opencv随笔1
图像处理技术一般包括图像压缩,增强和复原,匹配 描述和l识别 3 个部分。 图像处理一般指数字图像处理 ( Digitallmage Processing)。 其中,数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个 大的二维数组。 该数组的元素称为像素,其值称为灰度值。而数字图像处理是 通过计算机对图像进行去除l噪声、增强、复原、分割、提取特征等处理的方法 和技术。
计算机视觉 (Computer Vision) 是一门研究如何使机器"看"的科学,具体 地说,就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视 觉,并进一步做图形处理,用电脑处理使之成为更适合人眼观察或传送给仪器检 测的图像的-门学科。
图像处理和计算机视觉的区别在于: 图像处理侧重于"处理"图像-一如增 强,还原,去噪,分割,等等;而计算机视觉重点在于使用计算机(也许是可移 动式的)来模拟人的视觉,因此模拟才是计算机视觉领域的最终目标。
OpenCV (Open Source Computer Vision Library),是一个基于开源发行的 跨平台计算机视觉库,它实现了图像处理和 计算机视觉方面的很多通用算法,已 经成为了计算机视觉领域最有力的研究工具之一。
opencv_modules.hpp存放的是 OpenCV2 中与新模块构造相关的说明代码
OpenCV 的所有模块
( 1 ) 【calib3d】 -一-Ca1ibration (校准)和 3D 这两个词的组合缩写。这个模块主要是相机校准和三维重建相关的内容,包括基本的多视角几何算法、单个立 体摄像头标定、物体姿态估计、立体相似性算法、 3D 信息的重建等。
(2) 【 contrib】 一一Contributed/Experimental Stuf的缩写。该模块包含了一些 最近添加的不太稳定的可选功能, 不用去多管。 新增了新型人脸识别、立体匹配、 人工视网膜模型等技术 。
(3) 【core】 一一核心功能模块,包含如下内容:
• OpenCV 基本数据结构
· 动态数据结构
· 绘图函数
· 数组操作相关函数
· 辅助功能与系统函数和宏
. 与 OpenGL 的互操作
(4) 【imgproc】 一 lmage 和 Process 这两个单词的缩写组合,图像处理模块。 包含如下内容:
· 线性和l非线性的图像滤波
. 图像的几何变换
· 其他(Miscellaneolls) 图像转换
. 直方图相关
· 结构分析和形状描述
. 运动分析和对象跟踪
. 特征检测
· 目标检测等内容
( 5) 【features2d】 一一也就是 Features2D,即 2D 功能框架,包含如下内容:
. 特征检测和描述
. 特征检测器 (Feature Detectors) 通用接口
· 描述符提取器 (Descriptor Extractors) 通用接口
. 描述符匹配器 (Descriptor Matchers )通用接口
· 通用描述符 (Generic Descriptor) 匹配器通用接口
. 关键点绘制函数和匹配功能绘制函数
(6) 【flann】 一 Fast Library for Approximate Nearest Neighbors, 高维的近似, 近邻快速搜索算法库,包含以下两个部分:
. 快速近似最近邻搜索
. 聚类
( 7 ) 【gpu】 一一运用 GPU 加速的计算机视觉模块。
( 8) 【highgui】 一-高层 GUI 图形用户界面,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。
(9) 【legacy】 一一 一些己经废弃的代码库, 保留下来作为向下兼容,包含如 下内容:
· 运动分析
· 期望最大化
. 直方图
· 平面细分 (CAPI)
· 特征检测和描述 (Feature Detection and Description)
. 描述符提取器 ( Descriptor Extactors) 的通用接口
. 通用描述符(Generic Descriptor Matchers)的常用接口
. 匹配器
(10) 【 mJ】 一 Machine Learning,机器学习模块,基本上是统计模型和分类 算法,包含如下内容:
· 统计模型 ( Statistical Models)
· 一般贝叶斯分类器 (Normal Bayes Classifier)
• K-近邻 (K-Nearest Neighbors)
· 支持向量机( Support Vector Machines)
. 决策树 (Decision Trees)
· 提升 (Boosting)
· 梯度提高树 (Gradient Boosted Trees)
. 随机树 (Random Trees)
· 超随机树( Extremely randomized trees)
· 期望最大化 (Expectation Maximization)
· 神经网络 (Neural Networks)
• MLData
(11) 【nonfree】 一一 一些具有专利的算法模块,包含特征检测和 GPU 相关的 内容。最好不要商用 。
( 12) 【objdetect】 一一 目标检测模块, 包含 Cascade Classification (级联分类) 和 Latent SVM 这两个部分。
(13 ) 【ocl】 一 OpenCL-accelerated Computer Vision, 运用 OpenCL 加速的计算机视觉组件模块。
( 14) 【photo】 一 Computational Photography, 包含图像修复和图像去噪两部分
( 15 ) 【stitching】 一 images stitching,图像拼接模块,包含如下部分:
· 拼接流水线
· 特点寻找和匹配图像
. 估计旋转
· 自动校准
. 图片歪斜·
· 接缝估测
. 曝光补偿
· 图片混合
( 16 ) 【superres】 一 SuperResolution,超分辨率技术的相关功能模块。
(17) 【ts】 一 OpenCV 测试相关代码,不用去管。
( 18) 【 video】 一一视频分析组件,该模块包括运动估计、背景分离、对象跟踪等视频处理相关内容。
( 19 ) 【Videostab】 一 Video stabilization,视频稳定相关的组件,官方文档中没有多做介绍,不用管它。
视频
读入视频有两种方法
先实例化再初始化
VideoCapture capture;
capture. open("l .avi");
在实例化的同时进行初始化
VideoCapture capture("1.avi");
视频读入到VideoCaptme类对象之后,紧接着可以用一个循环将每一帧显示出来,相关代码如下:
//循环显示每一帧
while (1)
{
Mat frame; / /定义一个Mat交量,用于存储每一帧的图像
capture>>frame; //读取当前帧
imshow{"读取视频", frame); / /显示当前帧
waitKey(30); //延时30ms
}
调用摄像头进行视频采集的话, 将代码VideoCapturecapture (" l.avi ");中的"l.avi"换为0就可以了,表示调用摄像头而不是从文件中读取视频









main三种写法

总结

opencv随笔1的更多相关文章
- OpenCV随笔
创建一个窗口#zeros(shape,dtype=float,order='C')#shape:形状,dtype:数据类型,可选参数,默认numpy.float64img = np.zeros((50 ...
- 转载OPENCV学习随笔
转载自 亦轩Dhc http://www.cnblogs.com/daihengchen/p/5492729.html 学习笔记:使用opencv做双目测距(相机标定+立体匹配+测距). 最近在做 ...
- OpenCV人脸识别Eigen算法源码分析
1 理论基础 学习Eigen人脸识别算法需要了解一下它用到的几个理论基础,现总结如下: 1.1 协方差矩阵 首先需要了解一下公式: 共公式可以看出:均值描述的是样本集合的平均值,而标准差描述的则是样本 ...
- opencv的一次性配置
最近做自然场景中的文字识别,想尝试些图像处理方法,感觉每一种方法都需要自己写很麻烦,自然就想到了强大的开源的跨平台计算机视觉库OpenCv.我用的是opencv2.4.9版本,VS用的是2010,他们 ...
- opencv中stitching_detail的运行
这个拼图并非自带的直接使用sources中的代码.而是把必要的内容放到工程中,改造成自己的图像拼接.参考博文:http://www.tuicool.com/articles/fMbUfaF 该篇博文总 ...
- opencv视频播放
在一个界面上显示一张图片.是一件非常easy的事情,但说到要显示视频.刚開始学习的人可能不知道怎么处理,事实上,一般来说能够理解为视频就是图片以人眼察觉不到的速度高速更新. 曾经用摄像头採集视频显示在 ...
- Python学习--使用dlib、opencv进行人脸检测标注
参考自https://www.pyimagesearch.com/2017/04/03/facial-landmarks-dlib-opencv-python/ 在原有基础上有一部分的修改(image ...
- Android开发:Eclipse+OpenCV环境搭建
一.OpenCV预备: OpenCV是一个跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它由一系列 C 函数和少量 C++ 类构成,同时提供了Pyt ...
- python中使用Opencv进行人脸检测
这两天学习了人脸识别,看了学长写的代码,边看边码边理解搞完了一边,再又是自己靠着理解和记忆硬码了一边,感觉还是很生疏,就只能来写个随笔加深一下印象了. 关于人脸识别,首先需要了解的是级联分类器Casc ...
随机推荐
- pycharm在进行debug时不小心把console关闭了,恢复console的办法
点击下图中右边的箭头就恢复了 此时可看到console已恢复
- find命令面试题
注意 (1)建议先创建快照 (2)有可能存在命令正确,但是查找不到文件的情况,是因为不存在相关条件的文件 (3)如果存在命令正确,但是查找不到文件的情况,则先创建相关的文件.目录.用户.组,设置好对应 ...
- python列表与集合,以及循环时的注意事项
一.python列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,往后数的最后一个为-1依此类推. Python有6个序 ...
- javascript学习总结之对象的深拷贝和浅拷贝
前言 最近在写ES6的文章的时候发现重复遇到关于javascript深拷贝和浅拷贝的问题,然后查找了一些资料,根据资料和自己的理解做了以下笔记,毕竟javascript关于深拷贝和浅拷贝的问题在一些面 ...
- Leetcode(9)回文数
Leetcode(9)回文数 [题目表述]: 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 第一次:直接全部转 执行用时:148 ms: 内存消耗:13.4 ...
- Spring事务传播属性有那么难理解吗?
学习东西要知行合一,如果只是知道理论而没实践过,那么掌握的也不会特别扎实,估计过几天就会忘记,接下来我们一起实践来学习Spring事务的传播属性. 传播属性 传播属性定义的是当一个事务方法碰到另一个事 ...
- 文本查重算法SimHash
1.介绍 爬虫采集了大量的文本数据,如何进行去重?可以使用文本计算MD5,然后与已经抓取下来的MD5集合进行比较,但这种做法有个问题,文本稍有不同MD5值都会大相径庭, 无法处理文本相似问题.另一种方 ...
- zepto源码分析·event模块
准备知识 事件的本质就是发布/订阅模式,dom事件也不例外:先简单说明下发布/订阅模式,dom事件api和兼容性 发布/订阅模式 所谓发布/订阅模式,用一个形象的比喻就是买房的人订阅楼房消息,售楼处发 ...
- 使用 HTML5 WebSocket 构建实时 Web 应用
原文地址:http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/ HTML5 WebSocket 简介和实战演练 本文主要介绍 ...
- AutoCad 二次开发 .net 之相同块的自动编号
主要步骤: 一.获取一个块的id: 其中oId就是了. 二.通过次oId获取块引用blkRef: 三.通过它获取所有相同的块引用的id集合: 四.通过步骤三的集合得到所有的块引用得到集合listBr: ...