OpenCV轻松入门:面向Python(第2版) 封面

OpenCV轻松入门:面向Python(第2版)

评分 4.1
字数
25.9万字
章节数
292
ISBN
9787121455995

标签

内容简介

本书基于面向Python 的OpenCV(OpenCV for Python),介绍了图像处理的方方面面。本书以OpenCV官方文档的知识脉络为主线,并对细节进行补充和说明。 书中不仅介绍了OpenCV函数的使用方法,还介绍了函数实现的算法原理。在介绍OpenCV函数的使用方法时,提供了大量的程序示例。而且在介绍函数对图像的处理前,往往先展示函数对数值、数组的处理,方便读者从数值的角度观察和理解函数的处理过程和结果。在介绍具体的算法原理时,本书尽 量使用通俗易懂的语言和贴近生活的示例来说明问题,避免使用过多复杂抽象的公式。

编辑推荐

这是一本以官方文档知识脉络为主线、面向Python的OpenCV图像处理入门书,第2版延续了“先示例、后原理”的讲法。它的突出特点是兼顾函数用法与算法解释:介绍处理函数时给出大量程序示例,并常先从数值和数组的角度展示处理过程,让读者直观看到图像数据如何被改变;讲算法原理时尽量用通俗语言和生活化示例,减少复杂公式带来的阅读障碍。对于想动手做图像处理、又不想被抽象理论卡住的读者,这本书能帮助建立从调用函数到理解背后逻辑的过渡。适合按章节边读边敲代码,把示例当作练习起点,再逐步替换成自己的图片和参数做验证。

适合谁读

适合

  • 具备Python基础、希望系统入门OpenCV图像处理的开发者
  • 计算机视觉相关课程的学生,需要配合实验完成练习
  • 工作中需要快速实现图像读取、变换与基础处理的工程师
  • 想通过示例和直观解释理解图像处理算法原理的自学者

不适合

  • 完全没有Python编程经验、需要先补语法基础的读者
  • 希望深入研究深度学习模型训练与部署的读者
  • 寻找纯算法数学推导或前沿研究综述的学术读者

阅读建议

  1. 按章节顺序阅读并同步运行示例代码,先观察数组数值变化,再理解函数对图像的整体效果。
  2. 每学完一个函数类别,用自己的图片替换示例素材,修改参数观察差异,加深对处理过程的理解。
  3. 阅读算法原理部分时,可先看生活化示例建立直觉,再回看代码中的关键步骤,避免陷入公式细节。
  4. 建议建立自己的代码笔记,按图像读取、变换、滤波、特征等主题归类,方便后续查阅和复用。

出版社简介

电子工业出版社 中国 · 成立于 1982 年

电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。

目录

  1. 版权信息
  2. 内容简介
  3. 第2版前言
  4. 前言
  5. 第1章 OpenCV入门
  6. 1.1 如何使用
  7. 1.2 图像处理基本操作
  8. 1.2.1 读取图像
  9. 1.2.2 显示图像
  10. 1.2.3 保存图像
  11. 1.3 OpenCV贡献库
  12. 第2章 图像处理基础
  13. 2.1 图像的基本表示方法
  14. 2.2 像素处理
  15. 2.3 使用numpy.array访问像素
  16. 2.4 感兴趣区域(ROI)
  17. 2.5 通道操作
  18. 2.5.1 通道拆分
  19. 2.5.2 通道合并
  20. 2.6 获取图像属性
  21. 第3章 图像运算
  22. 3.1 图像加法运算
  23. 3.1.1 加号运算符
  24. 3.1.2 cv2.add()函数
  25. 3.2 图像加权和
  26. 3.3 按位逻辑运算
  27. 3.3.1 按位与运算
  28. 3.3.2 按位或运算
  29. 3.3.3 按位非运算
  30. 3.3.4 按位异或运算
  31. 3.4 掩膜
  32. 3.5 图像与数值的运算
  33. 3.6 位平面分解
  34. 3.7 图像加密和解密
  35. 3.8 数字水印
  36. 3.8.1 原理
  37. 3.8.2 实现方法
  38. 3.8.3 例题
  39. 3.9 脸部打码及解码
  40. 3.9.1 按位与方式
  41. 3.9.2 ROI方式
  42. 第4章 色彩空间类型转换
  43. 4.1 色彩空间基础
  44. 4.1.1 GRAY色彩空间
  45. 4.1.2 XYZ色彩空间
  46. 4.1.3 YCrCb色彩空间
  47. 4.1.4 HSV色彩空间
  48. 4.1.5 HLS色彩空间
  49. 4.1.6 CIEL*a*b*色彩空间
  50. 4.1.7 CIEL*u*v*色彩空间
  51. 4.1.8 Bayer色彩空间
  52. 4.2 类型转换函数
  53. 4.3 类型转换实例
  54. 4.3.1 通过数组观察转换效果
  55. 4.3.2 图像处理实例
  56. 4.4 HSV色彩空间讨论
  57. 4.4.1 基础知识
  58. 4.4.2 获取指定颜色
  59. 4.4.3 标记指定颜色
  60. 4.4.4 标记肤色
  61. 4.4.5 实现艺术效果
  62. 4.5 alpha通道
  63. 第5章 几何变换
  64. 5.1 缩放
  65. 5.2 翻转
  66. 5.3 仿射
  67. 5.3.1 平移
  68. 5.3.2 旋转
  69. 5.3.3 更复杂的仿射变换
  70. 5.4 透视
  71. 5.5 重映射
  72. 5.5.1 映射参数的理解
  73. 5.5.2 复制
  74. 5.5.3 绕x轴翻转
  75. 5.5.4 绕y轴翻转
  76. 5.5.5 绕x轴、y轴翻转
  77. 5.5.6 x轴、y轴互换
  78. 5.5.7 图像缩放
  79. 第6章 阈值处理
  80. 6.1 threshold函数
  81. 6.1.1 二值化阈值处理(cv2.THRESH_BINARY)
  82. 6.1.2 反二值化阈值处理(cv2.THRESH_BINARY_INV)
  83. 6.1.3 截断阈值化处理(cv2.THRESH_TRUNC)
  84. 6.1.4 超阈值零处理(cv2.THRESH_TOZERO_INV)
  85. 6.1.5 低阈值零处理(cv2.THRESH_TOZERO)
  86. 6.2 Otsu处理
  87. 6.3 自适应阈值处理
  88. 第7章 图像平滑处理
  89. 7.1 均值滤波
  90. 7.1.1 基本原理
  91. 7.1.2 函数语法
  92. 7.1.3 程序示例
  93. 7.2 方框滤波
  94. 7.2.1 基本原理
  95. 7.2.2 函数语法
  96. 7.2.3 程序示例
  97. 7.3 高斯滤波
  98. 7.3.1 基本原理
  99. 7.3.2 函数语法
  100. 7.3.3 程序示例
  101. 7.4 中值滤波
  102. 7.4.1 基本原理
  103. 7.4.2 函数语法
  104. 7.4.3 程序示例
  105. 7.5 双边滤波
  106. 7.5.1 基本原理
  107. 7.5.2 函数语法
  108. 7.5.3 程序示例
  109. 7.6 2D卷积
  110. 第8章 形态学操作
  111. 8.1 腐蚀
  112. 8.2 膨胀
  113. 8.3 通用形态学函数
  114. 8.4 开运算
  115. 8.5 闭运算
  116. 8.6 形态学梯度运算
  117. 8.7 礼帽运算
  118. 8.8 黑帽运算
  119. 8.9 核函数
  120. 第9章 图像梯度
  121. 9.1 卷积基础
  122. 9.2 Sobel理论基础
  123. 9.3 Sobel算子及函数使用
  124. 9.3.1 参数ddepth
  125. 9.3.2 方向
  126. 9.3.3 实例
  127. 9.4 Scharr算子及函数使用
  128. 9.5 Sobel算子和Scharr算子的比较
  129. 9.6 Laplacian算子及函数使用
  130. 9.7 算子总结
  131. 第10章 Canny边缘检测
  132. 10.1 Canny边缘检测基础
  133. 10.2 Canny函数及使用
  134. 第11章 图像金字塔
  135. 11.1 理论基础
  136. 11.2 pyrDown函数及使用
  137. 11.3 pyrUp函数及使用
  138. 11.4 采样可逆性的研究
  139. 11.5 拉普拉斯金字塔
  140. 11.5.1 定义
  141. 11.5.2 应用
  142. 第12章 图像轮廓
  143. 12.1 查找并绘制轮廓
  144. 12.1.1 查找图像轮廓:findContours函数
  145. 12.1.2 绘制图像轮廓:drawContours函数
  146. 12.1.3 轮廓实例
  147. 12.2 矩特征
  148. 12.2.1 矩的计算:moments函数
  149. 12.2.2 计算轮廓的面积:contourArea函数
  150. 12.2.3 计算轮廓的长度:arcLength函数
  151. 12.3 Hu矩
  152. 12.3.1 Hu矩函数
  153. 12.3.2 形状匹配
  154. 12.4 轮廓拟合
  155. 12.4.1 矩形包围框
  156. 12.4.2 最小包围矩形框
  157. 12.4.3 最小包围圆形
  158. 12.4.4 最优拟合椭圆
  159. 12.4.5 最优拟合直线
  160. 12.4.6 最小外包三角形
  161. 12.4.7 逼近多边形
  162. 12.5 凸包
  163. 12.5.1 获取凸包
  164. 12.5.2 凸缺陷
  165. 12.5.3 几何学测试
  166. 12.6 利用形状场景算法比较轮廓
  167. 12.6.1 计算形状场景距离
  168. 12.6.2 计算Hausdorff距离
  169. 12.7 轮廓的特征值
  170. 12.7.1 宽高比
  171. 12.7.2 Extent
  172. 12.7.3 Solidity
  173. 12.7.4 等效直径(Equivalent Diameter)
  174. 12.7.5 方向
  175. 12.7.6 掩膜和像素点
  176. 12.7.7 最大值和最小值及它们的位置
  177. 12.7.8 平均颜色及平均灰度
  178. 12.7.9 极点
  179. 第13章 直方图处理
  180. 13.1 直方图的含义
  181. 13.2 绘制直方图
  182. 13.2.1 使用Numpy绘制直方图
  183. 13.2.2 使用OpenCV绘制直方图
  184. 13.2.3 使用掩膜绘制直方图
  185. 13.3 直方图均衡化
  186. 13.3.1 直方图均衡化原理
  187. 13.3.2 直方图均衡化处理
  188. 13.4 pyplot模块介绍
  189. 13.4.1 subplot函数
  190. 13.4.2 imshow函数
  191. 第14章 傅里叶变换
  192. 14.1 理论基础
  193. 14.2 Numpy实现傅里叶变换
  194. 14.2.1 实现傅里叶变换
  195. 14.2.2 实现逆傅里叶变换
  196. 14.3 OpenCV实现傅里叶变换
  197. 14.3.1 实现傅里叶变换
  198. 14.3.2 实现逆傅里叶变换
  199. 14.4 滤波处理
  200. 14.4.1 滤波原理
  201. 14.4.2 高通滤波实现
  202. 14.4.3 低通滤波实现
  203. 第15章 模板匹配
  204. 15.1 模板匹配基础
  205. 15.2 多模板匹配
  206. 第16章 霍夫变换
  207. 16.1 霍夫直线变换
  208. 16.1.1 霍夫变换原理
  209. 16.1.2 HoughLines函数
  210. 16.1.3 HoughLinesP函数
  211. 16.2 霍夫圆环变换
  212. 第17章 图像分割与提取
  213. 17.1 用分水岭算法实现图像分割与提取
  214. 17.1.1 算法原理
  215. 17.1.2 相关函数介绍
  216. 17.1.3 分水岭算法图像分割实例
  217. 17.2 交互式前景提取
  218. 17.2.1 矩形框提取
  219. 17.2.2 自定义模板提取
  220. 17.2.3 手绘模板提取
  221. 第18章 视频处理
  222. 18.1 VideoCapture类
  223. 18.1.1 类函数介绍
  224. 18.1.2 捕获摄像头视频
  225. 18.1.3 播放视频文件
  226. 18.2 VideoWriter类
  227. 18.2.1 类函数介绍
  228. 18.2.2 保存视频
  229. 18.3 视频操作基础
  230. 第19章 绘图及交互
  231. 19.1 绘画基础
  232. 19.1.1 绘制直线
  233. 19.1.2 绘制矩形
  234. 19.1.3 绘制圆形
  235. 19.1.4 绘制椭圆
  236. 19.1.5 绘制多边形
  237. 19.1.6 在图形上绘制文字
  238. 19.2 鼠标交互
  239. 19.2.1 绘制随机矩形
  240. 19.2.2 双窗口绘制图形
  241. 19.2.3 绘制多种不同图形
  242. 19.3 滚动条
  243. 19.3.1 用滚动条实现调色板
  244. 19.3.2 滚动条交互
  245. 19.3.3 用滚动条作为开关
  246. 第20章 K近邻算法
  247. 20.1 理论基础
  248. 20.2 计算
  249. 20.2.1 归一化
  250. 20.2.2 距离计算
  251. 20.3 手写数字识别的原理
  252. 20.4 自定义函数手写数字识别
  253. 20.5 K近邻模块的基本使用
  254. 20.6 K近邻手写数字识别
  255. 第21章 支持向量机
  256. 21.1 理论基础
  257. 21.2 SVM流程
  258. 21.3 SVM员工表现预测
  259. 21.4 手写数字识别
  260. 第22章 K均值聚类
  261. 22.1 理论基础
  262. 22.1.1 分豆子
  263. 22.1.2 K均值聚类的基本步骤
  264. 22.2 K均值聚类模块
  265. 22.3 单特征豆子分类
  266. 22.4 米粒分类
  267. 22.5 灰度图像二值化
  268. 第23章 人脸识别
  269. 23.1 人脸检测
  270. 23.1.1 基本原理
  271. 23.1.2 级联分类器的使用
  272. 23.1.3 函数介绍
  273. 23.1.4 案例介绍
  274. 23.2 人脸识别基础
  275. 23.2.1 人脸识别基本流程
  276. 23.2.2 OpenCV人脸识别基础
  277. 23.3 LPBH人脸识别
  278. 23.3.1 基本原理
  279. 23.3.2 函数介绍
  280. 23.3.3 案例介绍
  281. 23.4 EigenFaces人脸识别
  282. 23.4.1 基本原理
  283. 23.4.2 函数介绍
  284. 23.4.3 案例介绍
  285. 23.5 Fisherfaces人脸识别
  286. 23.5.1 基本原理
  287. 23.5.2 函数介绍
  288. 23.5.3 案例介绍
  289. 23.6 人脸数据库
  290. 附录A 范例
  291. 附录B 练习题
  292. 附录C 参考答案

常见问题

学这本书之前需要什么基础?
需要具备Python基本语法和常用数据结构的使用能力,了解数组概念会更顺畅。书中从数值和数组角度解释图像处理过程,因此对列表、数组操作不陌生的读者上手更快。若没有图像处理经验不影响阅读,但完全零编程基础建议先补Python。
书中的示例代码需要什么运行环境?
书中面向Python使用OpenCV,读者需要准备可运行Python的环境并安装OpenCV相关库。具体版本和安装方式建议以书中说明和官方文档为准。示例通常需要配合图像文件运行,建议按章节建立独立目录,便于管理素材和代码。
这本书能用来做计算机视觉项目吗?
本书侧重图像处理的基础函数与算法原理,适合作为计算机视觉项目的入门准备。它能帮助你掌握图像读取、变换、滤波等常用操作,但若项目涉及深度学习模型训练、目标检测等高级任务,还需要额外学习相关框架和算法资料。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

作者简介

李立宗 作者

李立宗是一位公开资料有限的作者,目前已知其姓名与两部作品,国籍、英文名及生卒年等个人信息均未明确。从库内作品看,他的写作集中于计算机视觉与 OpenCV 技术方向,涵盖面向 Python 的入门教程以及从入门到深度学习的案例集,可见其内容兼顾基础入门与实践应用,适合希望借助 OpenCV-Python 学习图像处理与计算机视觉的读者。其作品在站内归入计算机综合与软件学习类,整体偏重技术工具的实际操作,写法上应是循序渐进的教程风格。由于缺少生平方面的公开信息,这里不作额外推断,只依据作品题材与归类来介绍其写作侧重。

同一作者

同类高分