为你推荐
版权
作者
前言
第一部分 快速上手OpenCV
第1章 邂逅OpenCV
1.1 OpenCV周边概念认知
1.1.1 图像处理、计算机视觉与OpenCV
1.1.2 OpenCV概述
1.1.3 起源及发展
1.1.4 应用概述
1.2 OpenCV基本架构分析
1.3 OpenCV3带来了什么
1.3.1 项目架构的改变
1.3.2 将OpenCV2代码升级到OpenCV3报错时的一些策略
1.4 OpenCV的下载、安装与配置
1.4.1 预准备:下载和安装集成开发环境
1.4.2 第一步:下载和安装OpenCV SDK
1.4.3 第二步:配置环境变量
1.4.4 第三步:工程包含(include)目录的配置
1.4.5 第四步:工程库(lib)目录的配置
1.4.6 第五步:链接库的配置
1.4.7 第六步:在Windows文件夹下加入OpenCV动态链接库
1.4.8 第七步:最终测试
1.4.9 可能遇到的问题和解决方案
1.5 快速上手OpenCV图像处理
1.5.1 第一个程序:图像显示
1.5.2 第二个程序:图像腐蚀
1.5.3 第三个程序:图像模糊
1.5.4 第四个程序:canny边缘检测
1.6 OpenCV视频操作基础
1.6.1 读取并播放视频
1.6.2 调用摄像头采集图像
1.7 本章小结
第2章 启程前的认知准备
2.1 OpenCV官方例程引导与赏析
2.1.1 彩色目标跟踪:Camshift
2.1.2 光流:optical flow
2.1.3 点追踪:lkdemo
2.1.4 人脸识别:objectDetection
2.1.5 支持向量机引导
2.2 开源的魅力:编译OpenCV源代码
2.2.1 下载安装CMake
2.2.2 使用CMake生成OpenCV源代码工程的解决方案
2.2.3 编译OpenCV源代码
2.3“opencv.hpp”头文件认知
2.4 命名规范约定
2.5 argc与argv参数解惑
2.5.1 初识main函数中的argc和argv
2.5.2 argc、argv的具体含义
2.5.3 Visual Studio中main函数的几种写法说明
2.5.4 总结
2.6 格式输出函数printf()简析
2.6.1 格式输出:printf()函数
2.6.2 示例程序:printf函数的用法示例
2.7 智能显示当前使用的OpenCV版本
2.8 本章小结
第3章 HighGUI图形用户界面初步
3.1 图像的载入、显示和输出到文件
3.1.1 OpenCV的命名空间
3.1.2 Mat类简析
3.1.3 图像的载入与显示概述
3.1.4 图像的载入:imread()函数
3.1.5 图像的显示:imshow()函数
3.1.6 关于InputArray类型
3.1.7 创建窗口:namedWindow()函数
3.1.8 输出图像到文件:imwrite()函数
3.1.9 综合示例程序:图像的载入、显示与输出
3.2 滑动条的创建和使用
3.2.1 创建滑动条:createTrackbar()函数
3.2.2 获取当前轨迹条的位置:getTrackbarPos()函数
3.3 鼠标操作
3.4 本章小结
第二部分 初探core组件
第4章 OpenCV数据结构与基本绘图
4.1 基础图像容器Mat
4.1.1 数字图像存储概述
4.1.2 Mat结构的使用
4.1.3 像素值的存储方法
4.1.4 显式创建Mat对象的七种方法
4.1.5 OpenCV中的格式化输出方法
4.1.6 输出其他常用数据结构
4.1.7 示例程序:基础图像容器Mat类的使用
4.2 常用数据结构和函数
4.2.1 点的表示:Point类
4.2.2 颜色的表示:Scalar类
4.2.3 尺寸的表示:Size类
4.2.4 矩形的表示:Rect类
4.2.5 颜色空间转换:cvtColor()函数
4.2.6 其他常用的知识点
4.3 基本图形的绘制
4.3.1 DrawEllipse()函数的写法
4.3.2 DrawFilledCircle()函数的写法
4.3.3 DrawPolygon()函数的写法
4.3.4 DrawLine()函数的写法
4.3.5 main函数的写法
4.4 本章小结
第5章 core组件进阶
5.1 访问图像中的像素
5.1.1 图像在内存之中的存储方式
5.1.2 颜色空间缩减
5.1.3 LUT函数:Look up table操作
5.1.4 计时函数
5.1.5 访问图像中像素的三类方法
5.1.6 示例程序
5.2 ROI区域图像叠加&图像混合
5.2.1 感兴趣区域:ROI
5.2.2 线性混合操作
5.2.3 计算数组加权和:addWeighted()函数
5.2.4 综合示例:初级图像混合
5.3 分离颜色通道、多通道图像混合
5.3.1 通道分离:split()函数
5.3.2 通道合并:merge()函数
5.3.3 示例程序:多通道图像混合
5.4 图像对比度、亮度值调整
5.4.1 理论依据
5.4.2 访问图片中的像素
5.4.3 示例程序:图像对比度、亮度值调整
5.5 离散傅里叶变换
5.5.1 离散傅里叶变换的原理
5.5.2 dft()函数详解
5.5.3 返回DFT最优尺寸大小:getOptimalDFTSize()函数
5.5.4 扩充图像边界:copyMakeBorder()函数
5.5.5 计算二维矢量的幅值:magnitude()函数
5.5.6 计算自然对数:log()函数
5.5.7 矩阵归一化:normalize()函数
5.5.8 示例程序:离散傅里叶变换
5.6 输入输出XML和YAML文件
5.6.1 XML和YAML文件简介
5.6.2 FileStorage类操作文件的使用引导
5.6.3 示例程序:XML和YAML文件的写入
5.6.4 示例程序:XML和YAML文件的读取
5.7 本章小结
第三部分 掌握imgproc组件
第6章 图像处理
6.1 线性滤波:方框滤波、均值滤波、高斯滤波
6.1.1 平滑处理
6.1.2 图像滤波与滤波器
6.1.3 线性滤波器的简介
6.1.4 滤波和模糊
6.1.5 邻域算子与线性邻域滤波
6.1.6 方框滤波(box Filter)
6.1.7 均值滤波
6.1.8 高斯滤波
6.1.9 线性滤波相关OpenCV源码剖析
6.1.10 OpenCV中GaussianBlur函数源码剖析
6.1.11 线性滤波核心API函数
6.1.12 图像线性滤波综合示例
6.2 非线性滤波:中值滤波、双边滤波
6.2.1 非线性滤波概述
6.2.2 中值滤波
6.2.3 双边滤波
6.2.4 非线性滤波相关核心API函数
6.2.5 OpenCV中的5种图像滤波综合示例
6.3 形态学滤波(1):腐蚀与膨胀
6.3.1 形态学概述
6.3.2 膨胀
6.3.3 腐蚀
6.3.4 相关OpenCV源码分析溯源
6.3.5 相关核心API函数讲解
6.3.6 综合示例:腐蚀与膨胀
6.4 形态学滤波(2):开运算、闭运算、形态学梯度、顶帽、黑帽
6.4.1 开运算
6.4.2 闭运算
6.4.3 形态学梯度
6.4.4 顶帽
6.4.5 黑帽
6.4.6 形态学滤波OpenCV源码分析溯源
6.4.7 核心API函数:morphologyEx()
6.4.8 各形态学操作使用范例一览
6.4.9 综合示例:形态学滤波
6.5 漫水填充
6.5.1 漫水填充的定义
6.5.2 漫水填充法的基本思想
6.5.3 实现漫水填充算法:floodFill函数
6.5.4 综合示例:漫水填充
6.6 图像金字塔与图片尺寸缩放
6.6.1 引言
6.6.2 关于图像金字塔
6.6.3 高斯金字塔
6.6.4 拉普拉斯金字塔
6.6.5 尺寸调整:resize()函数
6.6.6 图像金字塔相关API函数
6.6.7 综合示例:图像金字塔与图片尺寸缩放
6.7 阈值化
6.7.1 固定阈值操作:Threshold()函数
6.7.2 自适应阈值操作:adaptiveThreshold()函数
6.7.3 示例程序:基本阈值操作
6.8 本章小结
第7章 图像变换
7.1 基于OpenCV的边缘检测
7.1.1 边缘检测的一般步骤
7.1.2 canny算子
7.1.3 sobel算子
7.1.4 Laplacian 算子
7.1.5 scharr滤波器
7.1.6 综合示例:边缘检测
7.2 霍夫变换
7.2.1 霍夫变换概述
7.2.2 OpenCV中的霍夫线变换
7.2.3 霍夫线变换的原理
7.2.4 标准霍夫变换:HoughLines()函数
7.2.5 累计概率霍夫变换:HoughLinesP()函数
7.2.6 霍夫圆变换
7.2.7 霍夫梯度法的原理
7.2.8 霍夫梯度法的缺点
7.2.9 霍夫圆变换:HoughCircles()函数
7.2.10 综合示例:霍夫变换
7.3 重映射
7.3.1 重映射的概念
7.3.2 实现重映射:remap()函数
7.3.3 基础示例程序:基本重映射
7.3.4 综合示例程序:实现多种重映射
7.4 仿射变换
7.4.1 认识仿射变换
7.4.2 仿射变换的求法
7.4.3 进行仿射变换:warpAffine()函数
7.4.4 计算二维旋转变换矩阵:getRotationMatrix2D()函数
7.4.5 示例程序:仿射变换
7.5 直方图均衡化
7.5.1 直方图均衡化的概念和特点
7.5.2 实现直方图均衡化:equalizeHist()函数
7.5.3 示例程序:直方图均衡化
7.6 本章小结
第8章 图像轮廓与图像分割修复
8.1 查找并绘制轮廓
8.1.1 寻找轮廓:findContours()函数
8.1.2 绘制轮廓:drawContours()函数
8.1.3 基础示例程序:轮廓查找
8.1.4 综合示例程序:查找并绘制轮廓
8.2 寻找物体的凸包
8.2.1 凸包
8.2.2 寻找凸包:convexHull()函数
8.2.3 基础示例程序:凸包检测基础
8.2.4 综合示例程序:寻找和绘制物体的凸包
8.3 使用多边形将轮廓包围
8.3.1 返回外部矩形边界:boundingRect()函数
8.3.2 寻找最小包围矩形:minAreaRect()函数
8.3.3 寻找最小包围圆形:minEnclosingCircle()函数
8.3.4 用椭圆拟合二维点集:fitEllipse()函数
8.3.5 逼近多边形曲线:approxPolyDP()函数
8.3.6 基础示例程序:创建包围轮廓的矩形边界
8.3.7 基础示例程序:创建包围轮廓的圆形边界
8.3.8 综合示例程序:使用多边形包围轮廓
8.4 图像的矩
8.4.1 矩的计算:moments()函数
8.4.2 计算轮廓面积:contourArea()函数
8.4.3 计算轮廓长度:arcLength()函数
8.4.4 综合示例程序:查找和绘制图像轮廓矩
8.5 分水岭算法
8.5.1 实现分水岭算法:watershed()函数
8.5.2 综合示例程序:分水岭算法
8.6 图像修补
8.6.1 实现图像修补:inpaint()函数
8.6.2 综合示例程序:图像修补
8.7 本章小结
第9章 直方图与匹配
9.1 图像直方图概述
9.2 直方图的计算与绘制
9.2.1 计算直方图:calcHist()函数
9.2.2 找寻最值:minMaxLoc()函数
9.2.3 示例程序:绘制H—S直方图
9.2.4 示例程序:计算并绘制图像一维直方图
9.2.5 示例程序:绘制RGB三色直方图
9.3 直方图对比
9.3.1 对比直方图:compareHist()函数
9.3.2 示例程序:直方图对比
9.4 反向投影
9.4.1 引言
9.4.2 反向投影的工作原理
9.4.3 反向投影的作用
9.4.4 反向投影的结果
9.4.5 计算反向投影:calcBackProject()函数
9.4.6 通道复制:mixChannels()函数
9.4.7 综合程序:反向投影
9.5 模板匹配
9.5.1 模板匹配的概念与原理
9.5.2 实现模板匹配:matchTemplate()函数
9.5.3 综合示例:模板匹配
9.6 本章小结
第四部分 深入feature2d组件
第10章 角点检测
10.1 Harris角点检测
10.1.1 兴趣点与角点
10.1.2 角点检测
10.1.3 harris角点检测
10.1.4 实现Harris角点检测:cornerHarris()函数
10.1.5 综合示例:harris角点检测与绘制
10.2 Shi-Tomasi角点检测
10.2.1 Shi-Tomasi角点检测概述
10.2.2 确定图像强角点:goodFeaturesToTrack()函数
10.2.3 综合示例:Shi-Tomasi角点检测
10.3 亚像素级角点检测
10.3.1 背景概述
10.3.2 寻找亚像素角点:cornerSubPix()函数
10.3.3 综合示例:亚像素级角点检测
10.4 本章小结
第11章 特征检测与匹配
11.1 SURF特征点检测
11.1.1 SURF算法概览
11.1.2 SURF算法原理
11.1.3 SURF类相关OpenCV源码剖析
11.1.4 绘制关键点:drawKeypoints()函数
11.1.5 KeyPoint类
11.1.6 示例程序:SURF特征点检测
11.2 SURF特征提取
11.2.1 绘制匹配点:drawMatches()函数
11.2.2 BruteForceMatcher类源码分析
11.2.3 示例程序:SURF特征提取
11.3 使用FLANN进行特征点匹配
11.3.1 FlannBasedMatcher类的简单分析
11.3.2 找到最佳匹配:DescriptorMatcher::match方法
11.3.3 示例程序:使用FLANN进行特征点匹配
11.3.4 综合示例程序:FLANN结合SURF进行关键点的描述和匹配
11.3.5 综合示例程序:SIFT配合暴力匹配进行关键点描述和提取
11.4 寻找已知物体
11.4.1 寻找透视变换:findHomography()函数
11.4.2 进行透视矩阵变换:perspectiveTransform()函数
11.4.3 示例程序:寻找已知物体
11.5 ORB特征提取
11.5.1 ORB算法概述
11.5.2 相关概念认知
11.5.3 ORB类相关源码简单分析
11.5.4 示例程序:ORB算法描述与匹配
11.6 本章小结
附录
A1 配套示例程序清单
A2 随书额外附赠的程序一览
A3 书本核心函数清单
A4 Mat类函数一览
A4.1 构造函数:Mat::Mat
A4.2 析构函数Mat::~Mat
A4.3 Mat类成员函数
主要参考文献
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜