Easy Introduction to OpenCV: Python-Oriented (2nd Edition)
Tags
Summary
Editor's review
Who it's for
A good fit for
- Developers with Python basics who want a systematic introduction to OpenCV image processing
- Students in computer vision-related courses who need to complete exercises alongside experiments
- Engineers who need to quickly implement image reading, transformation, and basic processing at work
- Self-learners who want to understand image processing algorithm principles through examples and intuitive explanations
Not a good fit for
- Readers with no Python programming experience who need to first build a syntax foundation
- Readers who want to study deep learning model training and deployment in depth
- Academic readers looking for purely mathematical derivations of algorithms or reviews of cutting-edge research
Reading tips
- Read in chapter order and run the example code simultaneously; first observe changes in array values, then understand the overall effect of functions on images.
- After learning each category of functions, replace the example materials with your own images and modify parameters to observe differences, deepening your understanding of the processing procedure.
- When reading the algorithm principle sections, first use everyday examples to build intuition, then review the key steps in the code, avoiding getting bogged down in formula details.
- It is recommended to keep your own code notes, categorized by topics such as image reading, transformation, filtering, and features, for later reference and reuse.
About the publisher
The Publishing House of Electronics Industry is a comprehensive publisher distinguished by its focus on electronic information and related fields. Judging from the more than 3,000 titles in its catalogue, its publishing covers programming and design, artificial intelligence, computer science, finance and economics, photography, and social sciences, attending both to cutting-edge technology and to general readers. Representative titles include Factor Investing: Methods and Practice, x86 Assembly Language: From Real Mode to Protected Mode, The RISC-V Reader, Artificial Intelligence: Speech Recognition, Understanding and Practice, Phased Array Radar Technology, Radar Target Characteristics, and 100 Go Mistakes and How to Avoid Them, most of which centre on technical methods and engineering practice. Its authors include Shi Chuan, Li Zhong, Wang Xiaobo, David Patterson, Andrew Waterman, and Yu Zihao, among others from China and abroad. Owing to limited public information, no further publishing features are elaborated here.
Contents
- 版权信息
- 内容简介
- 第2版前言
- 前言
- 第1章 OpenCV入门
- 1.1 如何使用
- 1.2 图像处理基本操作
- 1.2.1 读取图像
- 1.2.2 显示图像
- 1.2.3 保存图像
- 1.3 OpenCV贡献库
- 第2章 图像处理基础
- 2.1 图像的基本表示方法
- 2.2 像素处理
- 2.3 使用numpy.array访问像素
- 2.4 感兴趣区域(ROI)
- 2.5 通道操作
- 2.5.1 通道拆分
- 2.5.2 通道合并
- 2.6 获取图像属性
- 第3章 图像运算
- 3.1 图像加法运算
- 3.1.1 加号运算符
- 3.1.2 cv2.add()函数
- 3.2 图像加权和
- 3.3 按位逻辑运算
- 3.3.1 按位与运算
- 3.3.2 按位或运算
- 3.3.3 按位非运算
- 3.3.4 按位异或运算
- 3.4 掩膜
- 3.5 图像与数值的运算
- 3.6 位平面分解
- 3.7 图像加密和解密
- 3.8 数字水印
- 3.8.1 原理
- 3.8.2 实现方法
- 3.8.3 例题
- 3.9 脸部打码及解码
- 3.9.1 按位与方式
- 3.9.2 ROI方式
- 第4章 色彩空间类型转换
- 4.1 色彩空间基础
- 4.1.1 GRAY色彩空间
- 4.1.2 XYZ色彩空间
- 4.1.3 YCrCb色彩空间
- 4.1.4 HSV色彩空间
- 4.1.5 HLS色彩空间
- 4.1.6 CIEL*a*b*色彩空间
- 4.1.7 CIEL*u*v*色彩空间
- 4.1.8 Bayer色彩空间
- 4.2 类型转换函数
- 4.3 类型转换实例
- 4.3.1 通过数组观察转换效果
- 4.3.2 图像处理实例
- 4.4 HSV色彩空间讨论
- 4.4.1 基础知识
- 4.4.2 获取指定颜色
- 4.4.3 标记指定颜色
- 4.4.4 标记肤色
- 4.4.5 实现艺术效果
- 4.5 alpha通道
- 第5章 几何变换
- 5.1 缩放
- 5.2 翻转
- 5.3 仿射
- 5.3.1 平移
- 5.3.2 旋转
- 5.3.3 更复杂的仿射变换
- 5.4 透视
- 5.5 重映射
- 5.5.1 映射参数的理解
- 5.5.2 复制
- 5.5.3 绕x轴翻转
- 5.5.4 绕y轴翻转
- 5.5.5 绕x轴、y轴翻转
- 5.5.6 x轴、y轴互换
- 5.5.7 图像缩放
- 第6章 阈值处理
- 6.1 threshold函数
- 6.1.1 二值化阈值处理(cv2.THRESH_BINARY)
- 6.1.2 反二值化阈值处理(cv2.THRESH_BINARY_INV)
- 6.1.3 截断阈值化处理(cv2.THRESH_TRUNC)
- 6.1.4 超阈值零处理(cv2.THRESH_TOZERO_INV)
- 6.1.5 低阈值零处理(cv2.THRESH_TOZERO)
- 6.2 Otsu处理
- 6.3 自适应阈值处理
- 第7章 图像平滑处理
- 7.1 均值滤波
- 7.1.1 基本原理
- 7.1.2 函数语法
- 7.1.3 程序示例
- 7.2 方框滤波
- 7.2.1 基本原理
- 7.2.2 函数语法
- 7.2.3 程序示例
- 7.3 高斯滤波
- 7.3.1 基本原理
- 7.3.2 函数语法
- 7.3.3 程序示例
- 7.4 中值滤波
- 7.4.1 基本原理
- 7.4.2 函数语法
- 7.4.3 程序示例
- 7.5 双边滤波
- 7.5.1 基本原理
- 7.5.2 函数语法
- 7.5.3 程序示例
- 7.6 2D卷积
- 第8章 形态学操作
- 8.1 腐蚀
- 8.2 膨胀
- 8.3 通用形态学函数
- 8.4 开运算
- 8.5 闭运算
- 8.6 形态学梯度运算
- 8.7 礼帽运算
- 8.8 黑帽运算
- 8.9 核函数
- 第9章 图像梯度
- 9.1 卷积基础
- 9.2 Sobel理论基础
- 9.3 Sobel算子及函数使用
- 9.3.1 参数ddepth
- 9.3.2 方向
- 9.3.3 实例
- 9.4 Scharr算子及函数使用
- 9.5 Sobel算子和Scharr算子的比较
- 9.6 Laplacian算子及函数使用
- 9.7 算子总结
- 第10章 Canny边缘检测
- 10.1 Canny边缘检测基础
- 10.2 Canny函数及使用
- 第11章 图像金字塔
- 11.1 理论基础
- 11.2 pyrDown函数及使用
- 11.3 pyrUp函数及使用
- 11.4 采样可逆性的研究
- 11.5 拉普拉斯金字塔
- 11.5.1 定义
- 11.5.2 应用
- 第12章 图像轮廓
- 12.1 查找并绘制轮廓
- 12.1.1 查找图像轮廓:findContours函数
- 12.1.2 绘制图像轮廓:drawContours函数
- 12.1.3 轮廓实例
- 12.2 矩特征
- 12.2.1 矩的计算:moments函数
- 12.2.2 计算轮廓的面积:contourArea函数
- 12.2.3 计算轮廓的长度:arcLength函数
- 12.3 Hu矩
- 12.3.1 Hu矩函数
- 12.3.2 形状匹配
- 12.4 轮廓拟合
- 12.4.1 矩形包围框
- 12.4.2 最小包围矩形框
- 12.4.3 最小包围圆形
- 12.4.4 最优拟合椭圆
- 12.4.5 最优拟合直线
- 12.4.6 最小外包三角形
- 12.4.7 逼近多边形
- 12.5 凸包
- 12.5.1 获取凸包
- 12.5.2 凸缺陷
- 12.5.3 几何学测试
- 12.6 利用形状场景算法比较轮廓
- 12.6.1 计算形状场景距离
- 12.6.2 计算Hausdorff距离
- 12.7 轮廓的特征值
- 12.7.1 宽高比
- 12.7.2 Extent
- 12.7.3 Solidity
- 12.7.4 等效直径(Equivalent Diameter)
- 12.7.5 方向
- 12.7.6 掩膜和像素点
- 12.7.7 最大值和最小值及它们的位置
- 12.7.8 平均颜色及平均灰度
- 12.7.9 极点
- 第13章 直方图处理
- 13.1 直方图的含义
- 13.2 绘制直方图
- 13.2.1 使用Numpy绘制直方图
- 13.2.2 使用OpenCV绘制直方图
- 13.2.3 使用掩膜绘制直方图
- 13.3 直方图均衡化
- 13.3.1 直方图均衡化原理
- 13.3.2 直方图均衡化处理
- 13.4 pyplot模块介绍
- 13.4.1 subplot函数
- 13.4.2 imshow函数
- 第14章 傅里叶变换
- 14.1 理论基础
- 14.2 Numpy实现傅里叶变换
- 14.2.1 实现傅里叶变换
- 14.2.2 实现逆傅里叶变换
- 14.3 OpenCV实现傅里叶变换
- 14.3.1 实现傅里叶变换
- 14.3.2 实现逆傅里叶变换
- 14.4 滤波处理
- 14.4.1 滤波原理
- 14.4.2 高通滤波实现
- 14.4.3 低通滤波实现
- 第15章 模板匹配
- 15.1 模板匹配基础
- 15.2 多模板匹配
- 第16章 霍夫变换
- 16.1 霍夫直线变换
- 16.1.1 霍夫变换原理
- 16.1.2 HoughLines函数
- 16.1.3 HoughLinesP函数
- 16.2 霍夫圆环变换
- 第17章 图像分割与提取
- 17.1 用分水岭算法实现图像分割与提取
- 17.1.1 算法原理
- 17.1.2 相关函数介绍
- 17.1.3 分水岭算法图像分割实例
- 17.2 交互式前景提取
- 17.2.1 矩形框提取
- 17.2.2 自定义模板提取
- 17.2.3 手绘模板提取
- 第18章 视频处理
- 18.1 VideoCapture类
- 18.1.1 类函数介绍
- 18.1.2 捕获摄像头视频
- 18.1.3 播放视频文件
- 18.2 VideoWriter类
- 18.2.1 类函数介绍
- 18.2.2 保存视频
- 18.3 视频操作基础
- 第19章 绘图及交互
- 19.1 绘画基础
- 19.1.1 绘制直线
- 19.1.2 绘制矩形
- 19.1.3 绘制圆形
- 19.1.4 绘制椭圆
- 19.1.5 绘制多边形
- 19.1.6 在图形上绘制文字
- 19.2 鼠标交互
- 19.2.1 绘制随机矩形
- 19.2.2 双窗口绘制图形
- 19.2.3 绘制多种不同图形
- 19.3 滚动条
- 19.3.1 用滚动条实现调色板
- 19.3.2 滚动条交互
- 19.3.3 用滚动条作为开关
- 第20章 K近邻算法
- 20.1 理论基础
- 20.2 计算
- 20.2.1 归一化
- 20.2.2 距离计算
- 20.3 手写数字识别的原理
- 20.4 自定义函数手写数字识别
- 20.5 K近邻模块的基本使用
- 20.6 K近邻手写数字识别
- 第21章 支持向量机
- 21.1 理论基础
- 21.2 SVM流程
- 21.3 SVM员工表现预测
- 21.4 手写数字识别
- 第22章 K均值聚类
- 22.1 理论基础
- 22.1.1 分豆子
- 22.1.2 K均值聚类的基本步骤
- 22.2 K均值聚类模块
- 22.3 单特征豆子分类
- 22.4 米粒分类
- 22.5 灰度图像二值化
- 第23章 人脸识别
- 23.1 人脸检测
- 23.1.1 基本原理
- 23.1.2 级联分类器的使用
- 23.1.3 函数介绍
- 23.1.4 案例介绍
- 23.2 人脸识别基础
- 23.2.1 人脸识别基本流程
- 23.2.2 OpenCV人脸识别基础
- 23.3 LPBH人脸识别
- 23.3.1 基本原理
- 23.3.2 函数介绍
- 23.3.3 案例介绍
- 23.4 EigenFaces人脸识别
- 23.4.1 基本原理
- 23.4.2 函数介绍
- 23.4.3 案例介绍
- 23.5 Fisherfaces人脸识别
- 23.5.1 基本原理
- 23.5.2 函数介绍
- 23.5.3 案例介绍
- 23.6 人脸数据库
- 附录A 范例
- 附录B 练习题
- 附录C 参考答案
FAQ
What background is needed before studying this book?
What runtime environment is needed for the example code in the book?
Can this book be used for computer vision projects?
Comments
Find this book
This site is an index: you start “Search all sources” in your browser, and the entries it lists all point to third-party sites; please judge their availability yourself.
About the author
Li Lizong is an author about whom limited public information is available. Only his name and two works are known, while details such as nationality, English name, and dates of birth and death remain unconfirmed. Judging from the works in the library, his writing centers on computer vision and OpenCV technology, covering a Python-oriented introductory tutorial as well as a case collection that ranges from beginner level to deep learning. This suggests that his content balances foundational introduction with practical application, making it suitable for readers who wish to learn image processing and computer vision with OpenCV-Python. His works are categorized in the library under computer science and software learning, and they generally emphasize hands-on use of technical tools, with a tutorial style that is likely to progress step by step. Because there is no public biographical information, no further inferences are made here; the description of his writing focus is based only on the subject matter and categorization of his works.