---恢复内容开始---

  图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。图像处理和计算机视觉的区别在于:图像处理侧重于“处理”图像——如增强、还原、去噪、分割等;而计算机视觉重点在于使用计算机来模拟人的视觉。

  OpenCV由一系列C函数和C++类构成,拥有包括500多个C函数的跨平台的中高层API。OpenCV还提供MLL机器学习库,该机器学习库主要用于统计方面的模式识别和聚类。OpenCV可用于解决如下领域的问题:人机交互、物体识别、图像分区、人脸识别、动作识别、运动跟踪、机器人。

  OpenCV基本架构分析:...\opencv\build\include目录,其中有opencv和opencv2。opencv文件夹包含旧版的头文件,而opencv2包含着新版opencv2系列的头文件。

  OpenCV所有模块:

(1)【calib3d】——该模块主要是相机校准和三维重建相关的内容,包括基本的多视角几何算法、单个立体摄像头标定、物体姿态估计、立体相似性算法、3D信息的重建等。

(2)【contrib】——该模块新增了新型人脸识别、立体匹配、人工视网膜模型等技术。

(3)【core】——核心功能模块,包含OpenCV基本数据结构、动态数据结构、绘图函数、数组操作相关函数、辅助功能与系统函数和宏、与OpenGL的互操作。

(4)【imgproc】——图形处理模块,包含线性和非线性的图像滤波、图像的几何变换、其他图像转换、直方图相关、结构分析和形状描述、运动分析和形状描述、运动分析和对象跟踪、特征检测、目标检测等内容

(5)【features2d】——2D功能框架,包含特征检测和描述、特征检测器通用接口、描述符提取器通用接口、描述符匹配器通用接口、通用描述符匹配器通用接口、关键点绘制函数和匹配功能绘制函数

(6)【flann】——高维的近似近邻快速搜索算法库,包含快速近邻最近邻搜索、聚类

(7)【GPU】——运用GPU加速的计算机视觉模块

(8)【highgui】——高层GUI图形用户界面,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等

(9)【legacy】——一些已经废弃的代码库,保留下来作为向下兼容,包含运动分析、期望最大化、直方图、平面细分、特征检测和描述、描述符提取器的通用接口、通用描述符的常用接口、匹配器

(10)【ml】——机器学习模块,基本上是统计模型和分类算法,包含统计模型、一般贝叶斯分类器、K-近邻、支持向量机、决策树、提升、梯度提高树、随机数、超随机数、期望最大化、神经网络、MLData

(11)【nonfee】——一些具有专利的算法模块,包含特征检测和GPU相关的内容。

(12)【objdetect】——目标检测模块,包含Cascade Classification(级联分类)和Latent SVM两部分。

(13)【ocl】——运用OpenCL加速的计算机视觉组件模块

(14)【photo】——包含图像修复和图像去噪两部分

(15)【stitching】——图像拼接模块,包含拼接流水线、特点寻找和匹配图像、估计旋转、自动校准、图片歪斜、接缝估测、曝光补偿、图片混合

(16)【superres】——超分辨率技术的相关模块

(17)【ts】——OpenCV测试相关代码

(18)【video】——视频分析组件,该模块包括运动估计、背景分离、对象跟踪等视频处理相关内容

(19)【Videostab】——视频稳定相关组件

  opencv.hpp中包含了OpenCV各模块的头文件,故编写程序时,可写上“#include<opencv2/opencv.hpp>”即可。

  argc与argv参数:arg指的是“参数”,其中,argc为整数,用来统计运行程序时送给main函数的命令行参数的个数;*argv[]:为字符串数组,用来存放指向字符串参数的指针数组,每一个元素指向一个参数。

  int argc表示命令行字串的个数;

  char *argv[]表示命令行参数的字符串。

以下是参考 http://blog.sina.com.cn/s/blog_6a0e04380100r289.html 深度和通道的理解

矩阵数据类型:

–      CV_<bit_depth>(S|U|F)C<number_of_channels>

S = 符号整型  U = 无符号整型  F = 浮点型

E.g.:

CV_8UC1 是指一个8位无符号整型单通道矩阵,

CV_32FC2是指一个32位浮点型双通道矩阵

CV_8UC1           CV_8SC1          CV_16U C1       CV_16SC1 
CV_8UC2           CV_8SC2          CV_16UC2        CV_16SC2 
CV_8UC3           CV_8SC3          CV_16UC3        CV_16SC3 
CV_8UC4           CV_8SC4          CV_16UC4        CV_16SC4 
CV_32SC1         CV_32FC1         CV_64FC1
CV_32SC2         CV_32FC2         CV_64FC2
CV_32SC3         CV_32FC3         CV_64FC3
CV_32SC4         CV_32FC4         CV_64FC4

其中,通道表示每个点能存放多少个数,类似于RGB彩色图中的每个像素点有三个值,即三通道的。

图片中的深度表示每个值由多少位来存储,是一个精度问题,一般图片是8bit(位)的,则深度是8.

---恢复内容结束---

OpenCV3编程入门笔记(一)的更多相关文章

  1. OpenCV3编程入门笔记(1)图像载入、显示、保存、变换灰度图

    图像载入.显示.保存函数: 1         图像载入函数:imread()   Mat imread(const string& filename, int flags=1); const ...

  2. OpenCV3编程入门笔记(6)自我验证各函数程序代码

    // asw.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <opencv2/opencv.hpp> usi ...

  3. OpenCV3编程入门笔记(5)重要章节小节及核心函数

  4. OpenCV3编程入门笔记(4)腐蚀、膨胀、开闭运算、漫水填充、金字塔、阈值化、霍夫变换

    腐蚀erode.膨胀dilate 腐蚀和膨胀是针对图像中的白色部分(高亮部分)而言的,不是黑色的.除了输入输出图像外,还需传入模板算子element,opencv中有三种可以选择:矩形MORPH_RE ...

  5. OpenCV3编程入门笔记(3)线性滤波、非线性滤波、图像深度、通道

    15     遍历图像中的像素,是先for行数后for列数的,也就是一列一列的遍历,matlab中是从1开始计数,opnecv中采用c语言的从0开始计数. 矩阵归一化:normalize()函数,参数 ...

  6. OpenCV3编程入门笔记(2)计时函数、感兴趣区域RIO、分离/混合通道

    11     绘制直线的line函数 DrawLine(Mat img, Pont start, Point end); 绘制椭圆的ellipse函数 DrawEllipse(Mat img, dou ...

  7. 【浅墨著作】《OpenCV3编程入门》内容简单介绍&amp;勘误&amp;配套源码下载

    经过近一年的沉淀和总结,<OpenCV3编程入门>一书最终和大家见面了. 近期有为数不少的小伙伴们发邮件给浅墨建议最好在博客里面贴出这本书的文件夹,方便大家更好的了解这本书的内容.事实上近 ...

  8. OpenCV3编程入门.记录

    ZC:OpenCV3编程入门_毛星云编著_电子工业出版.pdf 1.在看到 PDF.P134(计算数组加权和:addWeighted()函数)的时候,其中讲到“当输出数组的深度为CV_32S时,这个函 ...

  9. OpenCV3编程入门读书笔记5-边缘检测

    一.边缘检测的一般步骤 1.滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能. 2.增强 增强边缘的基础是确定图像各 ...

随机推荐

  1. Spider-three

    一.selenium from selenium import webdriver driver = webdriver.Chrome() # 创建一个chrome浏览器控制对象#driver = w ...

  2. 个人练习:使用HTML+CSS制作二级菜单

    最近一直在学习HTML+CSS,刚看完如果制作下拉菜单部分,就想着做一个练练手. 先上成品图: 就是上面这个效果,横向菜单选项能点击,鼠标放在上面也能展开二级菜单,二级菜单也能点击,点击后就会在底下的 ...

  3. Jedis 简单案例

    POM 依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> < ...

  4. springboot 学习之路 6(定时任务)

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  5. Linux 防火墙

    目录 iptables配置 1. iptables 控制类型 2. 链表规则 3. iptables表 CentOS和RedHat 6.x CentOS和RedHat 7.x ufw ubuntu u ...

  6. [20180914]oracle 12c 表 full_hash_value如何计算.txt

    [20180914]oracle 12c 表 full_hash_value如何计算.txt --//昨天在12c下看表full_hash_value与11g的full_hash_value不同,不过 ...

  7. SQL 一列拆分多行

    select a.col1,b.col2 from (select col1,col2=convert(xml,' <root> <v>'+replace(col2,',',' ...

  8. SpringDataJpa的批量 保存 修改 操作

    SpringDataJpa进行修改数据库操作有两种方式: 一.调用保存实体的方法 1.保存一个实体:repository.save(T entity) 2.保存多个实体:repository.save ...

  9. DubboAdmin部署

    1.软件下载 部署管理后台和监控中心需要以下软件 opensesame  下载地址:https://github.com/alibaba/opensesame Dubbo源码下载  https://g ...

  10. LeetCode算法题-Majority Element(Java实现)

    这是悦乐书的第181次更新,第183篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第40题(顺位题号是169).给定大小为n的数组,找到数组中出现次数超过n/2的元素.假 ...