互联网
类型
可以朗读
语音朗读
265千字
字数
2025-04-01
发行日期
展开全部
主编推荐语
OpenCV是计算机视觉领域的开发者必须掌握的技术。
内容简介
本书基于OpenCV 4.10与Qt C++进行编写,全面系统地介绍OpenCV的使用及实战案例,并配套提供全书示例源码、PPT课件与作者QQ答疑服务。
本书共分19章,主要内容包括数字图像视觉概述、搭建OpenCV开发环境、核心模块Core、图像处理模块基础、灰度变换和直方图修正、图像平滑、几何变换、图像边缘检测、图像分割、图像金字塔、图像形态学、视频处理、机器学习、数字水印、图像加解密、物体计数、图像轮廓、手势识别以及停车场车牌识别系统等。
目录
- 版权信息
- 内容简介
- 主要作者简介
- 前言
- 第1章 数字图像视觉概述
- 1.1 图像的基本概念
- 1.1.1 图像和图形
- 1.1.2 什么是数字图像
- 1.1.3 数字图像的特点
- 1.1.4 图像单位(像素)
- 1.1.5 图像分辨率
- 1.1.6 屏幕分辨率
- 1.1.7 图像的灰度
- 1.1.8 灰度级
- 1.1.9 图像深度
- 1.1.10 二值图像
- 1.1.11 灰度图
- 1.1.12 彩色图像
- 1.1.13 通道
- 1.1.14 图像存储
- 1.2 图像噪声
- 1.2.1 图像噪声的定义
- 1.2.2 图像噪声的来源
- 1.2.3 图像噪声的滤除
- 1.3 图像处理
- 1.3.1 图像处理的分类
- 1.3.2 数字图像处理
- 1.3.3 数字图像处理常用的方法
- 1.3.4 图像处理的应用
- 1.4 图像信号处理层次
- 1.5 计算机视觉
- 1.5.1 计算机视觉的概念
- 1.5.2 计算机视觉系统的构成和分类
- 1.5.3 机器视觉的优势
- 1.5.4 机器视觉系统的应用
- 1.5.5 计算机视觉与相关学科的关系
- 1.6 OpenCV概述
- 1.7 Qt简介
- 第2章 搭建OpenCV开发环境
- 2.1 Windows下搭建OpenCV开发环境
- 2.1.1 下载和安装Qt
- 2.1.2 下载和解压OpenCV
- 2.1.3 了解构建工具
- 2.1.4 下载和安装CMake
- 2.1.5 生成Makefile文件
- 2.1.6 开始编译OpenCV
- 2.1.7 Qt开发的第一个OpenCV程序
- 2.2 Linux下搭建OpenCV开发环境
- 2.2.1 准备编译OpenCV所需依赖
- 2.2.2 编译OpenCV源码
- 2.2.3 Linux下的第一个OpenCV程序
- 2.2.4 下载Qt
- 2.2.5 安装依赖包
- 2.2.6 安装Qt
- 2.2.7 Linux下用Qt开发OpenCV
- 2.2.8 做个快照
- 2.3 数学函数
- 2.4 OpenCV架构
- 2.5 图像输入输出模块imgcodecs
- 2.5.1 imread读取图像文件
- 2.5.2 imwrite保存图片
- 2.6 OpenCV界面编程
- 2.6.1 新建窗口并显示
- 2.6.2 单窗口显示多幅图像
- 2.6.3 销毁窗口
- 2.6.4 调整窗口大小
- 2.6.5 鼠标事件
- 2.6.6 键盘事件
- 2.6.7 滑动条事件
- 第3章 核心模块Core
- 3.1 矩阵操作
- 3.1.1 矩阵类Mat
- 3.1.2 构造法
- 3.1.3 直接赋值法
- 3.1.4 数组法
- 3.1.5 create函数法
- 3.1.6 定义特殊矩阵
- 3.1.7 得到矩阵的行数、列数和维数
- 3.1.8 矩阵的数据指针及其打印
- 3.1.9 创建新的矩阵头
- 3.1.10 得到矩阵通道数
- 3.1.11 复制矩阵
- 3.1.12 判断矩阵是否有元素
- 3.1.13 矩阵的5种遍历方式
- 3.1.14 设置矩阵新值
- 3.1.15 得到矩阵的元素总个数
- 3.1.16 矩形类Rect
- 3.2 数组的操作
- 3.3 读写XML和YAML文件
- 3.3.1 YAML文件简介
- 3.3.2 写入和读取YAML\XML文件的基本步骤
- 3.3.3 XML、YAML文件的打开
- 3.3.4 文本和数字的输入和输出
- 3.3.5 OpenCV数据结构的输入和输出
- 3.3.6 vector(arrays)和maps的输入和输出
- 3.3.7 文件关闭
- 第4章 图像处理模块基础
- 4.1 颜色变换cvtColor
- 4.2 画基本图形
- 4.2.1 点的表示
- 4.2.2 画矩形
- 4.2.3 画圆
- 4.2.4 画椭圆
- 4.2.5 画线段
- 4.2.6 填充多边形
- 4.3 像素存放类Scalar
- 4.4 使用随机数
- 4.4.1 产生一个随机数
- 4.4.2 返回下一个随机数
- 4.4.3 用随机数填充矩阵
- 4.5 文字绘制
- 4.6 为图像添加边框
- 4.7 在图像中查找轮廓
- 第5章 灰度变换和直方图修正
- 5.1 点运算
- 5.1.1 基本概念
- 5.1.2 点运算的目标
- 5.1.3 点运算的分类
- 5.1.4 点运算的特点
- 5.1.5 点运算的应用
- 5.2 灰度变换
- 5.2.1 灰度变换概述
- 5.2.2 灰度变换的作用
- 5.2.3 灰度变换的方法
- 5.2.4 灰度化
- 5.2.5 对比度
- 5.2.6 灰度的线性变换
- 5.2.7 分段线性灰度变换
- 5.2.8 对数变换和反对数变换
- 5.2.9 幂律变换
- 5.3 直方图修正
- 5.3.1 直方图的概念
- 5.3.2 OpenCV实现灰度直方图
- 5.3.3 直方图均衡化
- 第6章 图像平滑
- 6.1 平滑处理算法
- 6.2 线性滤波
- 6.2.1 归一化方框滤波器
- 6.2.2 高斯滤波器
- 6.3 非线性滤波
- 6.3.1 中值滤波
- 6.3.2 双边滤波
- 第7章 几何变换
- 7.1 几何变换基础
- 7.2 图像平移
- 7.3 图像旋转
- 7.4 仿射变换
- 7.5 图像缩放
- 7.5.1 缩放原理
- 7.5.2 OpenCV中的缩放
- 第8章 图像边缘检测
- 8.1 图像边缘检测概述
- 8.2 边缘检测研究的历史现状
- 8.3 边缘定义及类型分析
- 8.4 梯度的概念
- 8.5 图像边缘检测的应用
- 8.6 目前边缘检测存在的问题
- 8.7 边缘检测的基本思想
- 8.8 图像边缘检测的步骤
- 8.9 经典图像边缘检测算法
- 8.9.1 差分边缘检测
- 8.9.2 Roberts算子
- 8.9.3 Sobel算子边缘检测
- 8.9.4 Prewitt算子边缘检测
- 8.9.5 LoG边缘检测算子
- 8.9.6 边缘检测的新技术与方法
- 第9章 图像分割
- 9.1 图像分割概述
- 9.2 图像分割的应用
- 9.3 图像分割的数学定义
- 9.4 图像分割方法的分类
- 9.4.1 基于阈值化的分割方法
- 9.4.2 基于边缘的分割方法
- 9.4.3 基于区域的分割方法
- 9.4.4 基于神经网络的分割方法
- 9.4.5 基于聚类的分割方法
- 9.5 使用OpenCV进行图像分割
- 9.5.1 阈值分割
- 9.5.2 固定阈值分割
- 9.5.3 自适应阈值分割
- 9.6 彩色图像分割
- 9.7 grabCut算法分割图像
- 9.7.1 基本概念
- 9.7.2 grabCut函数
- 9.8 floodFill(漫水填充)分割
- 9.8.1 基本概念
- 9.8.2 floodFill函数
- 9.9 分水岭分割法
- 9.9.1 基本概念
- 9.9.2 wathershed函数
- 第10章 图像金字塔
- 10.1 图像金字塔概述
- 10.2 高斯金字塔
- 10.2.1 向下采样
- 10.2.2 向上采样
- 10.3 拉普拉斯金字塔
- 第11章 图像形态学
- 11.1 图像形态学概述
- 11.2 形态学的应用
- 11.2.1 数学上的形态学
- 11.2.2 格
- 11.2.3 拓扑学
- 11.2.4 数学形态学的组成
- 11.2.5 数学形态学的应用
- 11.2.6 操作分类
- 11.3 结构元素
- 11.4 膨胀
- 11.5 腐蚀
- 11.6 开运算
- 11.7 闭运算
- 11.8 实现腐蚀和膨胀
- 11.9 开闭运算和顶帽黑帽
- 11.10 击中击不中
- 11.11 利用形态学运算提取水平线和垂直线
- 第12章 视频处理
- 12.1 OpenCV视频处理架构
- 12.2 类VideoCapture
- 12.3 构造VideoCapture对象
- 12.4 判断视频是否打开成功
- 12.5 读取视频帧
- 12.6 播放视频文件
- 12.7 获取和设置视频属性
- 12.8 播放摄像头视频
- 12.9 录制视频类VideoWriter
- 12.9.1 构造VideoWriter对象
- 12.9.2 初始化或重新初始化
- 12.9.3 连接一个fourcc代码
- 12.10 实现一个视频播放器
- 第13章 机器学习
- 13.1 机器学习概述
- 13.2 机器学习发展历程
- 13.3 机器学习研究现状
- 13.3.1 传统机器学习的研究现状
- 13.3.2 大数据环境下机器学习的研究现状
- 13.4 机器学习的分类
- 13.4.1 基于学习策略的分类
- 13.4.2 基于学习方法的分类
- 13.4.3 基于学习方式的分类
- 13.4.4 基于数据形式的分类
- 13.4.5 基于学习目标的分类
- 13.5 机器学习常见算法
- 13.6 机器学习的研究内容
- 13.7 机器学习的应用
- 13.8 OpenCV中的机器学习
- 13.8.1 支持向量机
- 13.8.2 贝叶斯分类器
- 第14章 数字水印
- 14.1 数字水印概述
- 14.1.1 数字水印的特点
- 14.1.2 图像数字水印
- 14.1.3 数字水印原理
- 14.1.4 嵌入过程
- 14.1.5 提取过程
- 14.2 相关函数
- 14.3 代码实现数字水印
- 第15章 图像加密和解密
- 15.1 图像加密和解密原理
- 15.2 相关函数
- 15.3 代码实现图像加解密
- 第16章 物体计数
- 16.1 物体计数基本原理
- 16.2 在图像上绘制文字
- 16.3 代码实现药片计数
- 第17章 图像轮廓
- 17.1 图像轮廓概述
- 17.2 应用场景
- 17.3 OpenCV中的轮廓函数
- 17.3.1 查找轮廓findContours
- 17.3.2 轮廓的基本属性
- 17.3.3 绘制轮廓drawContours
- 17.3.4 求轮廓面积contourArea
- 17.4 实战轮廓函数
- 17.5 实战黑白翻转
- 第18章 手势识别
- 18.1 手势识别概述
- 18.2 凸包和凸包检测
- 18.2.1 查找凸包的示例
- 18.2.2 凸缺陷及其意义
- 18.3 手势识别原理
- 18.4 区分手势0和1
- 18.5 区分手势2到5
- 第19章 停车场车牌识别系统
- 19.1 车牌识别技术概述
- 19.2 车牌识别技术的宏观分析
- 19.2.1 国外技术分析
- 19.2.2 国内技术分析
- 19.2.3 车牌识别技术的难点
- 19.2.4 车牌识别系统的开发思路
- 19.3 车牌定位技术
- 19.3.1 车牌特征概述
- 19.3.2 车牌定位方法
- 19.3.3 车牌图像预处理
- 19.3.4 车牌图像的灰度化
- 19.3.5 车牌图像的直方图均衡化
- 19.3.6 车牌图像的滤波
- 19.3.7 车牌图像的二值化
- 19.3.8 车牌图像的边缘检测
- 19.3.9 车牌图像的灰度映射
- 19.3.10 车牌图像的改进型投影法定位
- 19.4 车牌字符分割技术
- 19.4.1 常用车牌字符分割算法
- 19.4.2 车牌倾斜问题
- 19.4.3 车牌倾斜度检测方法
- 19.4.4 车牌倾斜度校正方法
- 19.4.5 车牌边框和铆钉的去除
- 19.4.6 车牌字符分割
- 19.4.7 基于垂直投影和先验知识的车牌字符分割
- 19.4.8 粘连车牌字符的分割
- 19.4.9 断裂车牌字符的合并
- 19.4.10 对车牌字符的切分结果进行确认
- 19.5 车牌字符识别技术
- 19.5.1 模式识别
- 19.5.2 字符识别
- 19.5.3 汉字识别
- 19.6 系统设计
- 19.7 系统拓扑结构
- 19.8 停车场端的详细设计
- 19.9 办公室端的详细设计
- 19.9.1 创建项目
- 19.9.2 设计界面
- 19.9.3 实现构造函数
- 19.9.4 文件信息类MyFileInfo
- 19.9.5 实现连接服务器函数
- 19.9.6 关联按钮槽函数
- 19.9.7 实现文件下载功能
- 19.9.8 接收文件信息
- 19.9.9 接收文件数据
- 19.9.10 图像处理相关的成员变量
- 19.9.11 实现打开文件
- 19.9.12 实现图像二值化
- 19.9.13 实现定位车牌
- 19.9.14 实现分割字符
- 19.9.15 实现识别结果
- 19.9.16 运行程序
展开全部
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。