《Python计算机视觉编程》是计算机视觉编程的权威性实践活动手册,依靠Python語言解读了基础知识与优化算法,并根据很多实例细腻剖析了另一半鉴别、应用场景內容的图像搜索、电子光学字符识别、光流法、追踪、三维重建、立体式显像、增强现实技术、姿势估算、内景建立、图像分割、减噪、图象排序等技术性。另一个,书中附送的训练还能让用户推进并学好运用编程专业知识。
《Python计算机视觉编程》合适的用户是:有必须编程与基础数学,愿意掌握计算机视觉的基础基础理论与优化算法的大学生,及其电子信息科学、信号分析、物理、应用数学和生物学、神经系统生理、认知科学等行业的科学研究工作人员和从业人员。
目录
- 推荐序 XI
- 前言 XIII
- 第1章 基本的图像操作和处理
- 1.1 PIL:Python图像处理类库
- 1.1.1 转换图像格式
- 1.1.2 创建缩略图
- 1.1.3 复制和粘贴图像区域
- 1.1.4 调整尺寸和旋转
- 1.2 Matplotlib
- 1.2.1 绘制图像、点和线
- 1.2.2 图像轮廓和直方图
- 1.2.3 交互式标注
- 1.3 NumPy
- 1.3.1 图像数组表示
- 1.3.2 灰度变换
- 1.3.3 图像缩放
- 1.3.4 直方图均衡化
- 1.3.5 图像平均
- 1.3.6 图像的主成分分析(PCA)
- 1.3.7 使用pickle模块
- 1.4 SciPy
- 1.4.1 图像模糊
- 1.4.2 图像导数
- 1.4.3 形态学:对象计数
- 1.4.4 一些有用的SciPy模块
- 1.5 高级示例:图像去噪
- 练习
- 代码示例约定
- 第2章 局部图像描述子
- 2.1 Harris角点检测器
- 2.2 SIFT(尺度不变特征变换)
- 2.2.1 兴趣点
- 2.2.2 描述子
- 2.2.3 检测兴趣点
- 2.2.4 匹配描述子
- 2.3 匹配地理标记图像
- 2.3.1 从Panoramio下载地理标记图像
- 2.3.2 使用局部描述子匹配
- 2.3.3 可视化连接的图像
- 练习
- 第3章 图像到图像的映射
- 3.1 单应性变换
- 3.1.1 直接线性变换算法
- 3.1.2 仿射变换
- 3.2 图像扭曲
- 3.2.1 图像中的图像
- 3.2.2 分段仿射扭曲
- 3.2.3 图像配准
- 3.3 创建全景图
- 3.3.1 RANSAC
- 3.3.2 稳健的单应性矩阵估计
- 3.3.3 拼接图像
- 练习
- 第4章 照相机模型与增强现实
- 4.1 针孔照相机模型
- 4.1.1 照相机矩阵
- 4.1.2 三维点的投影
- 4.1.3 照相机矩阵的分解
- 4.1.4 计算照相机中心
- 4.2 照相机标定
- 4.3 以平面和标记物进行姿态估计
- 4.4 增强现实
- 4.4.1 PyGame和PyOpenGL
- 4.4.2 从照相机矩阵到OpenGL格式
- 4.4.3 在图像中放置虚拟物体
- 4.4.4 综合集成
- 4.4.5 载入模型
- 练习
- 第5章 多视图几何
- 5.1 外极几何
- 5.1.1 一个简单的数据集
- 5.1.2 用Matplotlib绘制三维数据
- 5.1.3 计算F:八点法
- 5.1.4 外极点和外极线
- 5.2 照相机和三维结构的计算
- 5.2.1 三角剖分
- 5.2.2 由三维点计算照相机矩阵
- 5.2.3 由基础矩阵计算照相机矩阵
- 5.3 多视图重建
- 5.3.1 稳健估计基础矩阵
- 5.3.2 三维重建示例
- 5.3.3 多视图的扩展示例
- 5.4 立体图像
- 练习
- 第6章 图像聚类
- 6.1 K-means聚类
- 6.1.1 SciPy聚类包
- 6.1.2 图像聚类
- 6.1.3 在主成分上可视化图像
- 6.1.4 像素聚类
- 6.2 层次聚类
- 6.3 谱聚类
- 练习
- 第7章 图像搜索
- 7.1 基于内容的图像检索
- 7.2 视觉单词
- 7.3 图像索引
- 7.3.1 建立数据库
- 7.3.2 添加图像
- 7.4 在数据库中搜索图像
- 7.4.1 利用索引获取候选图像
- 7.4.2 用一幅图像进行查询
- 7.4.3 确定对比基准并绘制结果
- 7.5 使用几何特性对结果排序
- 7.6 建立演示程序及Web应用
- 7.6.1 用CherryPy创建Web应用
- 7.6.2 图像搜索演示程序
- 练习
- 第8章 图像内容分类
- 8.1 K邻近分类法(KNN)
- 8.1.1 一个简单的二维示例
- 8.1.2 用稠密SIFT作为图像特征
- 8.1.3 图像分类:手势识别
- 8.2 贝叶斯分类器
- 8.3 支持向量机
- 8.3.1 使用LibSVM
- 8.3.2 再论手势识别
- 8.4 光学字符识别
- 8.4.1 训练分类器
- 8.4.2 选取特征
- 8.4.3 多类支持向量机
- 8.4.4 提取单元格并识别字符
- 8.4.5 图像校正
- 练习
- 第9章 图像分割
- 9.1 图割(Graph Cut)
- 9.1.1 从图像创建图
- 9.1.2 用户交互式分割
- 9.2 利用聚类进行分割
- 9.3 变分法
- 练习
- 第10章 OpenCV
- 10.1 OpenCV的Python接口
- 10.2 OpenCV基础知识
- 10.2.1 读取和写入图像
- 10.2.2 颜色空间
- 10.2.3 显示图像及结果
- 10.3 处理视频
- 10.3.1 视频输入
- 10.3.2 将视频读取到NumPy数组中
- 10.4 跟踪
- 10.4.1 光流
- 10.4.2 Lucas-Kanade算法
- 10.5 更多示例
- 10.5.1 图像修复
- 10.5.2 利用分水岭变换进行分割
- 10.5.3 利用霍夫变换检测直线
- 练习
- 附录A 安装软件包
- A.1 NumPy和SciPy
- A.1.1 Windows
- A.1.2 Mac OS X
- A.1.3 Linux
- A.2 Matplotlib
- A.3 PIL
- A.4 LibSVM
- A.5 OpenCV
- A.5.1 Windows和Unix
- A.5.2 Mac OS X
- A.5.3 Linux
- A.6 VLFeat
- A.7 PyGame
- A.8 PyOpenGL
- A.9 Pydot
- A.10 Python-graph
- A.11 Simplejson
- A.12 PySQLite
- A.13 CherryPy
- 附录B 图像集
- B.1 Flickr
- B.2 Panoramio
- B.3 牛津大学视觉几何组
- B.4 肯塔基大学识别基准图像
- B.5 其他
- B.5.1 Prague Texture Segmentation Datagenerator与基准
- B.5.2 微软研究院Grab Cut数据集
- B.5.3 Caltech 101
- B.5.4 静态手势数据库
- B.5.5 Middlebury Stereo数据集
- 附录C 图片来源
- C.1 来自Flickr的图像
- C.2 其他图像
- C.3 插图
- 参考文献
- 索引