基于OpenCV的计算机视觉技术实现
分類: 图书,计算机/网络,图形图像 多媒体,其他,
作者: 陈胜勇,刘盛等编著
出 版 社: 科学出版社
出版时间: 2008-5-1字数: 598000版次: 1页数: 478印刷时间: 2008/05/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787030212108包装: 平装编辑推荐
本书内容共分18章,涉及200多个技术问题,覆盖了基于OpenCV基础编程的大部分内容。利用大量生动有趣的编程案例、编程技巧,从答疑解惑和解决问题入手,以因特网上最新资料为蓝本,以简洁明快的语言、清晰直观的条理,全面地对OpenCV编程过程中常见问题及故障给予了具体解决办法和答案。深入浅出地说明了OpenCV中最典型和用途最广的程序设计方法。并且结合作者所在计算机视觉研究团队多年来的研究实践经验对各个专题作较全面的解述。
内容简介
OpencV是用来实现计算机视觉相关技术的开放源码工作库,是计算机视觉、图像处理、模式识别、计算机图形学、信号处理、视频监控、科学可视化等相关从业人员的好工具。本书介绍了大约200多个典型的技术问题,覆盖了基于OpenCV基础编程的主要内容,利用大量生动有趣的编程案例和编程技巧,从解决问题和答疑解惑入手,以因特网上最新资料为蓝本,深入浅出地说明了OpenCV中最典型和用途最广的程序设计方法。全书结构清晰、合理,范例实用、丰富,理论结合实践,即使读者只是略懂计算机视觉原理,也能人手对相关理论方法直接进行编码实现。
本书可供广大科研人员、工程技术人员、高校相关专业师生及计算机视觉和图像编程爱好者阅读参考。
目录
前言
第一章 使用OpenCV实现计算机视觉技术
1.1 计算机视觉技术
1.2 什么是OpenCV
1.3 基于OpenCV库的编程方法
本章小结
第二章 OpenCV的编程环境
2.1 OpenCV环境介绍
2.2 OpenCV的体系结构
2.3 OpenCV实例演示
本章小结
第三章 OpenCV编程风格
3.1 命名约定
3.2结构
3.3函数接口设计
3.4函数实现
3.5代码布局
3.6移植性
3.7文件操作
3.8文档编写
本章小结
第四章数据结构
4.1基本数据结构
4.2数组有关的操作
4.3动态结构
本章小结
第五章数据交互
5.1绘图函数
5.2文件存储
5.3运行时类型信息和通用函数
5.4错误处理函数
5.5系统函数
本章小结
第六章图像处理
6.1边缘检测
6.2直方图
6.3Hough变换
6.4几何变换
6.5形态学
本章小结
第七章结构与识别
7.1轮廓处理函数
7.2计算几何
7.3平面划分
7.4目标检测函数
7.5生成与控制贝塞尔曲线
7.6用OpenCV进行人脸检测
本章小结
第八章 图形界面(HighGUI)
8.1 读取和保存图像
8.2 OpenCV中的实用系统函数
本章小结
第九章 视频处理(CvCAM)
9.1 使用HighGUI对视频进行读写处理
9.2 CvCam对摄像头和视频流的使用
本章小结
第十章 OpenCV附加库第一部分
10.1 附加库介绍
10.2 形态学(morhing functions)
本章小结
第十一章 OpenCV附加库第二部分——隐马尔可夫模型
11.1隐马尔可夫模型概述
11.2隐马尔可夫模型中的基本结构与函数介绍
11.3隐马尔可夫模型中的函数介绍
11.4人脸识别工具
本章小结
第十二章核心库综合例程
12.1检测黑白格标定板内指定矩形区域内的角点
12.2解线性标定方程组程序
本章小结
第十三章运动与跟踪
13.1图像统计的累积函数
13.2运动模板函数
13.3对象跟踪
13.4光流
13.5预估器
13.6 Kalman滤波器跟踪示例
13.7 用Snake方法检测可变形体的轮廓
13.8 运动目标跟踪与检测
本章小结
第十四章立体视觉第一部分——照相机定标
14.1坐标系介绍
14.2透视投影矩阵的获得
14.3摄像机参数的获取
14.4径向畸变的校正
14.5使用OpenCV及CVUT进行摄像机定标
14.6OpenCV中的定标函数
14.7CVUT介绍
本章小结
第十五章立体视觉第二部分——三维重建
15.1极线几何
15.2特征点匹配
15.3三维重建
15.4OpenCV中相关函数介绍
本章小结
第十六章立体视觉第三部分——三维重建算法
16.1图像校正
16.2已校正图像的快速三维重建
16.3 Birchfield算法
16.4 OpenCV中相关函数介绍
本章小结
第十七章 立体视觉第四部分——立体视觉实例
17.1 图像校正实例代码
17.2 基于窗口的稀疏点匹配及三维重建之一
17.3 基于窗口的稀疏点匹配及三维重建之二
17.4 Birchfield算法的OpenCV实现
本章小结
第十八章 常见问题解疑
18.1 安装与编译出错解决方法
18.2 OpenCV库基本技术问题
18.3 OpenCV在Linux下的相关问题
18.4 OpenCV库中的陷阱和bug
本章小结
参考文献
书摘插图
第一章 使用OpenCV实现计算机视觉技术
本章首先介绍了计算机视觉的概念及其现状和应用,然后对OpenCV作了简要的介绍,并指导读者如何养成良好的编程习惯以达到高效率的编程,最后介绍基于开源代码OpenCV进行程序开发的基本方法。此外还给出了用OpenCV编程时常用的资料信息及网络资源链接。
1.1计算机视觉技术
人眼与大脑的协作使得人们可以获取、处理及理解视觉信息。人类利用视觉感知外界环境信息的效率很高,事实上人类获取的环境信息中80%左右是通过视觉得到的。视觉信息来自于环境中的可见光:环境中的物体在可见光照射下,在人眼的视网膜上形成图像,通过感光细胞转换为神经脉冲信号并通过神经纤维传人大脑皮层进行处理与理解。所以,视觉并不仅指对光信号的感受,它包括对视觉信息的获取、传输、处理、储存以及理解的全过程。那么,究竟什么是计算机视觉技术呢?
1.1.1计算机视觉技术
近年来,随着计算机技术和数字信号处理技术的迅猛发展,人们用摄像机获取环境图像并将其转换成数字信号,且利用计算机实现对视觉信息处理的全过程,这就是计算机视觉技术的起源。
计算机视觉成为一门独立的学科,至少可以从美国麻省理工学院(MIT)Marr教授这一代人所做的奠基工作开始追溯,因此这门学科至少已有二三十年的历史。20世纪50年代归人模式识别——主要集中在二维图像分析和识别上,例如,光学字符识别、工件表面、显微图片和航空图片的分析和解释等。60年代MIT的RO—berts通过计算机程序从数字图像中提取出诸如立方体、楔形体、棱柱体等多面体的三维结构,并对物体形状及物体的空间关系进行描述。Roberts的研究工作开创了以理解三维场景为目的的三维计算机视觉的研究,Roberts对积木世界的创造性研究给人们以极大的启发。许多人相信,一旦由白色积木玩具组成的三维世界可以被理解,则可以推广到理解更复杂的三维场景。在70年代,已经出现了一些视觉应用系统。70年代中期麻省理工学院人工智能(AI)实验室正式开设“机器视觉”(machine vision)课程,由Horn教授讲授。
……