注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计C/C++及其相关OpenCV计算机视觉开发实践:基于Qt C++

OpenCV计算机视觉开发实践:基于Qt C++

OpenCV计算机视觉开发实践:基于Qt C++

定 价:¥138.00

作 者: 朱文伟、李建英
出版社: 清华大学出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787302684794 出版时间: 2025-04-01 包装: 平装-胶订
开本: 16开 页数: 字数:  

内容简介

  OpenCV是计算机视觉领域的开发者必须掌握的技术。《OpenCV计算机视觉开发实践:基于Qt C 》基于 OpenCV 4.10与Qt C 进行编写,全面系统地介绍OpenCV的使用及实战案例,并配套提供全书示例源码、PPT课件与作者QQ答疑服务。《OpenCV计算机视觉开发实践:基于Qt C 》共分19章,主要内容包括数字图像视觉概述、搭建OpenCV开发环境、核心模块Core、图像处理模块基础、灰度变换和直方图修正、图像平滑、几何变换、图像边缘检测、图像分割、图像金字塔、图像形态学、视频处理、机器学习、数字水印、图像加解密、物体计数、图像轮廓、手势识别以及停车场车牌识别系统等。《OpenCV计算机视觉开发实践:基于Qt C 》既适合OpenCV初学者、计算机视觉与图像处理的开发人员、人工智能图像处理开发人员阅读,也适合作为高等院校或者高职高专院校计算机视觉与图像处理相关专业的教材。

作者简介

  朱文伟,名校计算机专业统招硕士,20多年CC 、Java开发经验。主导开发过密码、图形、人工智能等产品。精通Linux、Windows系统开发及数据库开发技术。著有图书《OpenCV计算机视觉开发实践:基于Qt C 》《OpenCV计算机视觉开发实践:基于Python》《Linux C与C 一线开发实践(第2版)》《Rust编程与项目实战》《嵌入式Linux驱动开发实践》《高性能Linux网络编程核心技术揭秘》《Linux C/C 服务器开发实践》《Qt 6.x从入门到精通》《PyQt 5从入门到精通》《Linux C与C 一线开发实践》《Visual C 2017从入门到精通》《Windows C/C 加密解密实战》《密码学原理与Java实现》《OpenCV 4.5计算机视觉开发实战(基于VC )》《OpenCV 4.5计算机视觉开发实战:基于Python》。

图书目录

第1章  数字图像视觉概述 1
1.1  图像的基本概念 1
1.1.1  图像和图形 1
1.1.2  什么是数字图像 1
1.1.3  数字图像的特点 2
1.1.4  图像单位(像素) 2
1.1.5  图像分辨率 3
1.1.6  屏幕分辨率 3
1.1.7  图像的灰度 4
1.1.8  灰度级 4
1.1.9  图像深度 4
1.1.10  二值图像 5
1.1.11  灰度图 5
1.1.12  彩色图像 5
1.1.13  通道 6
1.1.14  图像存储 6
1.2  图像噪声 6
1.2.1  图像噪声的定义 6
1.2.2  图像噪声的来源 7
1.2.3  图像噪声的滤除 7
1.3  图像处理 8
1.3.1  图像处理的分类 8
1.3.2  数字图像处理 9
1.3.3  数字图像处理常用的方法 9
1.3.4  图像处理的应用 12
1.4  图像信号处理层次 12
1.5  计算机视觉 13
1.5.1  计算机视觉的概念 13
1.5.2  计算机视觉系统的构成和分类 14
1.5.3  机器视觉的优势 14
1.5.4  机器视觉系统的应用 14
1.5.5  计算机视觉与相关学科的关系 15
1.6  OpenCV概述 15
1.7  Qt简介 17
第2章  搭建OpenCV开发环境 19
2.1  Windows下搭建OpenCV开发环境 19
2.1.1  下载和安装Qt 19
2.1.2  下载和解压OpenCV 26
2.1.3  了解构建工具 27
2.1.4  下载和安装CMake 28
2.1.5  生成Makefile文件 30
2.1.6  开始编译OpenCV 33
2.1.7  Qt开发的第一个OpenCV程序 34
2.2  Linux下搭建OpenCV开发环境 38
2.2.1  准备编译OpenCV所需依赖 39
2.2.2  编译OpenCV源码 40
2.2.3  Linux下的第一个OpenCV程序 43
2.2.4  下载Qt 46
2.2.5  安装依赖包 46
2.2.6  安装Qt 47
2.2.7  Linux下用Qt开发OpenCV 51
2.2.8  做个快照 54
2.3  数学函数 55
2.4  OpenCV架构 56
2.5  图像输入输出模块imgcodecs 57
2.5.1  imread读取图像文件 58
2.5.2  imwrite保存图片 60
2.6  OpenCV界面编程 62
2.6.1  新建窗口并显示 62
2.6.2  单窗口显示多幅图像 64
2.6.3  销毁窗口 66
2.6.4  调整窗口大小 68
2.6.5  鼠标事件 69
2.6.6  键盘事件 71
2.6.7  滑动条事件 73
第3章  核心模块Core 76
3.1  矩阵操作 76
3.1.1  矩阵类Mat 76
3.1.2  构造法 78
3.1.3  直接赋值法 82
3.1.4  数组法 82
3.1.5  create函数法 83
3.1.6  定义特殊矩阵 83
3.1.7  得到矩阵的行数、列数和维数 84
3.1.8  矩阵的数据指针及其打印 85
3.1.9  创建新的矩阵头 86
3.1.10  得到矩阵通道数 88
3.1.11  复制矩阵 88
3.1.12  判断矩阵是否有元素 93
3.1.13  矩阵的5种遍历方式 93
3.1.14  设置矩阵新值 100
3.1.15  得到矩阵的元素总个数 100
3.1.16  矩形类Rect 100
3.2  数组的操作 101
3.3  读写XML和YAML文件 105
3.3.1  YAML文件简介 105
3.3.2  写入和读取YAMLXML文件的基本步骤 106
3.3.3  XML、YAML文件的打开 106
3.3.4  文本和数字的输入和输出 106
3.3.5  OpenCV数据结构的输入和输出 106
3.3.6  vector(arrays)和maps的输入和输出 107
3.3.7  文件关闭 107
第4章  图像处理模块基础 113
4.1  颜色变换cvtColor 113
4.2  画基本图形 115
4.2.1  点的表示 115
4.2.2  画矩形 116
4.2.3  画圆 117
4.2.4  画椭圆 119
4.2.5  画线段 122
4.2.6  填充多边形 122
4.3  像素存放类Scalar 124
4.4  使用随机数 126
4.4.1  产生一个随机数 128
4.4.2  返回下一个随机数 130
4.4.3  用随机数填充矩阵 131
4.5  文字绘制 132
4.6  为图像添加边框 139
4.7  在图像中查找轮廓 142
第5章  灰度变换和直方图修正 149
5.1  点运算 149
5.1.1  基本概念 149
5.1.2  点运算的目标 150
5.1.3  点运算的分类 150
5.1.4  点运算的特点 150
5.1.5  点运算的应用 150
5.2  灰度变换 151
5.2.1  灰度变换概述 151
5.2.2  灰度变换的作用 152
5.2.3  灰度变换的方法 152
5.2.4  灰度化 152
5.2.5  对比度 155
5.2.6  灰度的线性变换 155
5.2.7  分段线性灰度变换 160
5.2.8  对数变换和反对数变换 165
5.2.9  幂律变换 170
5.3  直方图修正 172
5.3.1  直方图的概念 172
5.3.2  OpenCV实现灰度直方图 173
5.3.3  直方图均衡化 175
第6章  图像平滑 181
6.1  平滑处理算法 181
6.2  线性滤波 183
6.2.1  归一化方框滤波器 183
6.2.2  高斯滤波器 185
6.3  非线性滤波 188
6.3.1  中值滤波 188
6.3.2  双边滤波 189
第7章  几何变换 193
7.1  几何变换基础 193
7.2  图像平移 196
7.3  图像旋转 198
7.4  仿射变换 204
7.5  图像缩放 207
7.5.1  缩放原理 207
7.5.2  OpenCV中的缩放 209
第8章  图像边缘检测 211
8.1  图像边缘检测概述 211
8.2  边缘检测研究的历史现状 213
8.3  边缘定义及类型分析 214
8.4  梯度的概念 216
8.5  图像边缘检测的应用 216
8.6  目前边缘检测存在的问题 217
8.7  边缘检测的基本思想 218
8.8  图像边缘检测的步骤 219
8.9  经典图像边缘检测算法 220
8.9.1  差分边缘检测 221
8.9.2  Roberts算子 223
8.9.3  Sobel算子边缘检测 225
8.9.4  Prewitt算子边缘检测 227
8.9.5  LoG边缘检测算子 230
8.9.6  边缘检测的新技术与方法 235
第9章  图像分割 238
9.1  图像分割概述 238
9.2  图像分割的应用 240
9.3  图像分割的数学定义 240
9.4  图像分割方法的分类 241
9.4.1  基于阈值化的分割方法 242
9.4.2  基于边缘的分割方法 243
9.4.3  基于区域的分割方法 243
9.4.4  基于神经网络的分割方法 245
9.4.5  基于聚类的分割方法 246
9.5  使用OpenCV进行图像分割 246
9.5.1  阈值分割 246
9.5.2  固定阈值分割 247
9.5.3  自适应阈值分割 250
9.6  彩色图像分割 256
9.7  grabCut算法分割图像 259
9.7.1  基本概念 259
9.7.2  grabCut函数 260
9.8  floodFill(漫水填充)分割 263
9.8.1  基本概念 263
9.8.2  floodFill函数 264
9.9  分水岭分割法 270
9.9.1  基本概念 270
9.9.2  wathershed函数 271
第10章  图像金字塔 279
10.1  图像金字塔概述 279
10.2  高斯金字塔 280
10.2.1  向下采样 281
10.2.2  向上采样 284
10.3  拉普拉斯金字塔 286
第11章  图像形态学 288
11.1  图像形态学概述 288
11.2  形态学的应用 288
11.2.1  数学上的形态学 289
11.2.2  格 289
11.2.3  拓扑学 289
11.2.4  数学形态学的组成 290
11.2.5  数学形态学的应用 290
11.2.6  操作分类 291
11.3  结构元素 291
11.4  膨胀 291
11.5  腐蚀 292
11.6  开运算 294
11.7  闭运算 295
11.8  实现腐蚀和膨胀 296
11.9  开闭运算和顶帽黑帽 299
11.10  击中击不中 302
11.11  利用形态学运算提取水平线和垂直线 305
第12章  视频处理 311
12.1  OpenCV视频处理架构 311
12.2  类VideoCapture 312
12.3  构造VideoCapture对象 312
12.4  判断视频是否打开成功 313
12.5  读取视频帧 314
12.6  播放视频文件 314
12.7  获取和设置视频属性 316
12.8  播放摄像头视频 319
12.9  录制视频类VideoWriter 321
12.9.1  构造VideoWriter对象 321
12.9.2  初始化或重新初始化 322
12.9.3  连接一个fourcc代码 322
12.10  实现一个视频播放器 324
第13章  机器学习 330
13.1  机器学习概述 330
13.2  机器学习发展历程 331
13.3  机器学习研究现状 332
13.3.1  传统机器学习的研究现状 333
13.3.2  大数据环境下机器学习的研究现状 334
13.4  机器学习的分类 334
13.4.1  基于学习策略的分类 335
13.4.2  基于学习方法的分类 335
13.4.3  基于学习方式的分类 336
13.4.4  基于数据形式的分类 336
13.4.5  基于学习目标的分类 336
13.5  机器学习常见算法 336
13.6  机器学习的研究内容 338
13.7  机器学习的应用 339
13.8  OpenCV中的机器学习 340
13.8.1  支持向量机 341
13.8.2  贝叶斯分类器 345
第14章  数字水印 348
14.1  数字水印概述 348
14.1.1  数字水印的特点 349
14.1.2  图像数字水印 349
14.1.3  数字水印原理 349
14.1.4  嵌入过程 350
14.1.5  提取过程 350
14.2  相关函数 351
14.3  代码实现数字水印 354
第15章  图像加密和解密 357
15.1  图像加密和解密原理 357
15.2  相关函数 358
15.3  代码实现图像加解密 359
第16章  物体计数 361
16.1  物体计数基本原理 361
16.2  在图像上绘制文字 361
16.3  代码实现药片计数 364
第17章  图像轮廓 367
17.1  图像轮廓概述 367
17.2  应用场景 368
17.3  OpenCV中的轮廓函数 368
17.3.1  查找轮廓findContours 368
17.3.2  轮廓的基本属性 369
17.3.3  绘制轮廓drawContours 370
17.3.4  求轮廓面积contourArea 370
17.4  实战轮廓函数 371
17.5  实战黑白翻转 373
第18章  手势识别 375
18.1  手势识别概述 375
18.2  凸包和凸包检测 375
18.2.1  查找凸包的示例 378
18.2.2  凸缺陷及其意义 381
18.3  手势识别原理 387
18.4  区分手势0和1 390
18.5  区分手势2到5 392
第19章  停车场车牌识别系统 397
19.1  车牌识别技术概述 397
19.2  车牌识别技术的宏观分析 398
19.2.1  国外技术分析 398
19.2.2  国内技术分析 400
19.2.3  车牌识别技术的难点 401
19.2.4  车牌识别系统的开发思路 401
19.3  车牌定位技术 402
19.3.1  车牌特征概述 402
19.3.2  车牌定位方法 403
19.3.3  车牌图像预处理 407
19.3.4  车牌图像的灰度化 407
19.3.5  车牌图像的直方图均衡化 408
19.3.6  车牌图像的滤波 410
19.3.7  车牌图像的二值化 411
19.3.8  车牌图像的边缘检测 411
19.3.9  车牌图像的灰度映射 412
19.3.10  车牌图像的改进型投影法定位 412
19.4  车牌字符分割技术 414
19.4.1  常用车牌字符分割算法 414
19.4.2  车牌倾斜问题 416
19.4.3  车牌倾斜度检测方法 416
19.4.4  车牌倾斜度校正方法 417
19.4.5  车牌边框和铆钉的去除 417
19.4.6  车牌字符分割 417
19.4.7  基于垂直投影和先验知识的车牌字符分割 418
19.4.8  粘连车牌字符的分割 419
19.4.9  断裂车牌字符的合并 420
19.4.10  对车牌字符的切分结果进行确认 420
19.5  车牌字符识别技术 421
19.5.1  模式识别 421
19.5.2  字符识别 422
19.5.3  汉字识别 424
19.6  系统设计 424
19.7  系统拓扑结构 426
19.8  停车场端的详细设计 426
19.9  办公室端的详细设计 433
19.9.1  创建项目 433
19.9.2  设计界面 433
19.9.3  实现构造函数 434
19.9.4  文件信息类MyFileInfo 435
19.9.5  实现连接服务器函数 436
19.9.6  关联按钮槽函数 437
19.9.7  实现文件下载功能 437
19.9.8  接收文件信息 438
19.9.9  接收文件数据 440
19.9.10  图像处理相关的成员变量 441
19.9.11  实现打开文件 441
19.9.12  实现图像二值化 442
19.9.13  实现定位车牌 444
19.9.14  实现分割字符 447
19.9.15  实现识别结果 452
19.9.16  运行程序 455
 

本目录推荐