机器视觉—基于 Visual C++和 OpenCV 实现
吕文阁 骆少明
目录
第 1 章 绪论
1.1 机器视觉概述
1.2 机器视觉的组成
1.3 机器视觉的应用
1.4 机器视觉的实现方法
第 2 章 机器视觉系统组成
2.1 相机
2.1.1 CCD 传感器
2.1.2 CMOS 传感器
2.1.3 传感器尺寸
2.1.4 摄像机性能
2.1.5 摄像机-计算机接口
(一) 模拟视频信号
(二) 数字视频信号:Camera Link
(三) 数字视频信号:IEEE 1394
(四) 数字视频信号:USB
(五) 数字视频信号:Gigabit Etherne 千兆网
2.2 镜头
2.2.1 针孔相机
2.2.2 镜头性能指标
2.2.3 滤光片
2.3 光源
2.3.1 对光源的要求
2.3.2 常用光源类型
2.3.3 光源类型
2.3.4 照明的方式
第 3 章 OpenCV 基础[]
2.1 开始使用 0penC
2.1.1 下载 0penCV
2.1.2 Visual Studio 下 0penCV 安装与配置
2.1.3 创建 0penCV 控制台项目
2.2 基本数据结构
2.2.1 CvPoint
2.2.2 CvSize
2.2.3 CvRect
2.2.4 CvScalar
2.2.5 IplImage
2.3 图像的使用与操作
2.3.1 分配和释放图像
2.3.2 图像的读写
2.3.3 访问图像元素
2.4 从摄像头和视频中获得图像
第 4 章 图像文件格式
2.1 概述
2.2 BMP 格式
2.3 GIF 格式
2.4 PNG 文件格式
2.5 JPEG 文件
2.5.1 离散余弦变换
2.5.2 图像的压缩编码
2.5.3 JPEG 文件的格式
第 5 章 图像增强
2.1 灰度值变换
2.2 直方图变换
2.3 图像平滑
2.4 图像锐化
2.5 频域变换
第 6 章 特征提取
2.1 概述
2.2 区域特征
2.2.1 阈值分割
(一)双峰法
(二)最优法
(二)大津法
2.2.2 种子生长
2.3. 轮廓特征
2.3.1 边缘检测
(一)Laplacian 算子
(二)Prewitt 算子
(三)Sobel 算子
(四)Canny 算子
2.3.2 轮廓提取
2.3.3 角点提取及亚像素
2.4 几何元素拟合
2.4.1 直线拟合
2.4.2 圆拟合
第 7 章 形态学
2.1 概述
2.2 腐蚀与膨胀
2.3 开运算和闭运算
第 8 章 模板匹配
3.1 基于像素的匹配
3.2 基于特征的匹配
第 9 章 相机标定
2.1 相机模型
2.1.1 齐次坐标
2.1.2 几何变换
2.2 标定
2.2.1 两步法
2.2.2 张正友法
第一章绪论
1.1 机器视觉概述
机器视觉(Machine vision)主要研究使用计算机系统来模拟人的视觉功能,
从对客观事物的观察中提取信息、进行处理并加以理解。首先将观察目标转换成
数字图像,根据图像各个点的亮度、颜色和分布等信息,进行各种运算来提取目
标的特征,进而根据判别的结果来实现某种目的。
机器视觉技术起源于上世纪 50 年代。最初机器视觉主要用于二维图像的研
究,例如对字符的识别等。到了 20 世纪 60 年代,Robert 开创了以理解三维场
景为目标的三维机器视觉研究。机器视觉应用系统在 70 年代出现并提出了较为
完整的机器视觉理论—Marr 视觉理论。90 年代至今,机器视觉发展为一门有
计算机技术、控制理论、模式识别、人工智能和生物技术等众多学科交叉的新学
科。
机器视觉系统在工业上的应用是以提高生产的柔性和自动化程度为目的。在
一些不适合于人工作业的危险工作环境或人工视觉难以满足要求的场合,常用机
器视觉来替代人工视觉;同时在大批量工业生产过程中,用人工视觉检查产品质
量效率低且精度不高,用机器视觉检测方法可以大大提高生产效率和生产的自动
化程度,而且机器视觉易于实现信息集成,是实现计算机集成制造的基础技术。
正是由于机器视觉系统可以快速获取大量信息,而且易于自动处理,也易于同设
计信息以及加工控制信息集成,因此,在现代自动化生产过程中,人们将机器视
觉系统广泛地用于工况监视、成品检验和质量控制等领域。
1.2 机器视觉的组成
机器视觉系统是指通过机器视觉产品(图像采集装置)获取图像,然后获得
的图像传送至处理单元,通过数字化图像处理进行目标尺寸,形状,颜色等的判
别,进而根据判别的结果控制现场设备。一个典型的机器视觉系统涉及多个领域
的技术交叉与融合,包括光源照明技术、光学成像技术、传感器技术、数字图像
处理技术、模拟与数字视频技术、机械工程技术、控制技术、计算机软硬件技术、
人机接口技术等。
机器视觉系统由获取图像信息的图像测量子系统与决策分类或跟踪对象控
制子系统两部分组成。图像测量系统又可分为图像获取和图像处理两大部分。图
像测量子系统包括相机、摄像系统和光源设备等,例如测量微小细胞的显微图像
摄影系统、考察地球表面的卫星多光谱扫描成像系统、在工业生产流水线上的工
业机器人监控视觉系统、医学层析成像系统(CT)等。图像测量子系统的光波段
可以从可见光、红外光、X 射线、微波、超声波到γ射线等。从图像测量子系统
获取的图像可以是静止图像,如文字、照片等;也可以是运动图像,如视频图像
等;既可以是二维图像,也可以是三维图像。图像处理就是利用数字计算机或其
他高速、大规模集成数字硬件设备,对从图像测量子系统获取的信息进行数字运
算和处理,进而达到人们所要求的效果。决策分类或跟踪对象的控制系统主要由
对象驱动和执行机构组成,它根据对图像信息处理的结果实施决策控制。如在线
视觉测控系统对产品 NG 判定分类的去向控制、自动跟踪目标动态视觉测量系统
的实时跟踪控制,以及机器人视觉的模识控制等。
1.2.1 系统硬件
目前市场上机器视觉系统可以按结构分为两大类:嵌入式机器视觉系统和基
于 PC 的机器视觉系统。嵌入式机器视觉系统将所需要的大部分硬件如相机、内
存、处理器以及通信接口等压缩在一个“黑箱”式的模块里,又称之为智能相机,
其优点是结构紧凑、性价比高、使用方便、对环境的适应性强,是机器视觉发展
的一大主流趋势;基于 PC 的机器视觉系统是传统的结构类型,硬件包括相机和
工控机。基于 PC 的机器视觉系统需要机器视觉软件配合施用,相对嵌入式机器
视觉系统价格低廉,但对开发者要求较高,目前居于市场应用的主导地位。
在机器视觉系统中,好的光源与照明方案往往是整个系统的成败关键。光源
与照明方案的配合应尽可能的突出物体特征参量,在增加图像对比度的同时,应
保证足够的整体亮度;物体位置的变化不应该影响成像的质量。光源的选择必须
符合所需的几何形状、照明亮度、均匀度、发光的光谱特性等,同时还要考虑光
源的发光效率和使用寿命。照明方案应充分考虑光源和光学镜头的相对位置、物
体表面的纹理、物体的几何形状以及背景等要素。
1.2.2 机器视觉软件
作为机器视觉系统的重要组成部分,机器视觉软件主要通过对图像的分析和
处理,实现对待测目标特定参数的检测和识别。机器视觉软件主要完成图像增强、
图像分割、特征抽取、模式识别、图像压缩与传输等算法内容,有些还具有数据
存储和网络通信功能。机器视觉系统可以根据图像处理结果和一定的判决条件方
便的实现产品自动化检测和管理。
根据软件的规模和功能,现有的机器视觉系统软件可以分为单任务的专用软
件和集成式通用组态软件两大类。专业软件是专门针对某一测试任务研制开发
的,其待测目标已知,测量算法不具有通用性,如投影电视会聚特性检测调整系
统和电子枪扭弯曲度智能检测系统。集成式通用组态软件是将众多通用的图像处
理与模式识别算法编织成函数库,并向用户提供一个开放的通用平台,用户可以
在这种平台上选择自己需要的函数,快速灵活的通过组态实现一个具体的视觉检
测任务。
目前机器视觉软件主要向高性能与可组态两方面发展。一方面,机器视觉软
件的竞争已从过去单纯追求软件多功能化转向对检测算法准确性、高效性的竞
争。优秀的机器视觉软件可以对图像中的目标特征进行快速而准确的检测,并最
大限度的减少对硬件系统的依赖性,另一方面,机器视觉软件正由定制方式朝着
通用、可视化组态方式发展。由于图像图像处理算法具有一定的通用性,用户可
以在通用平台上进行二次组态开发,快速实现多种工业测量、检测和识别功能。
1.3 机器视觉的应用
机器视觉技术的引进,减少了传统的人工检测的劳动强度,极大的提高的产
品的生产率和产品的质量。因为机器视觉系统可以准确而快速的获取大量信息,
也易于和设计信息以及加工控制信息集成化,当信息进入到计算机后方便处理。
所以在现代自动化生产过程里面,人们把机器视觉系统广泛的作用于质量控制,
工况监视和成品检测,包装和物料控制等方面,用机器视觉检测,并引导机器人
作业的方法可以大大提高生产效率和生产的自动化程度。而且机器视觉系统容易
实现信息集成,实现计算机集成制造的基础技术,在一些危险的工作环境和人眼
难以作出判断的环境和场合,我们就要采用机器视觉来代替人眼作用。同时在大
批量生产、传送、装配等的过程中,用人工检测、控制产品的精度不高而且效率
低。
机器视觉的应用普遍用在半导体和电子工业,其中半导体行业又占了 40%~
50%之间。具体的来说,比如 PCB 板的印刷电路方面:生产印刷电路的组装技术,
设备;单双面的 PCB 板,履铜板及所需要的材料和辅料;LED、微电子制造设备
等。SMT(表面组装技术)技术:SMT 工艺与设备,焊接设备,测试仪器,返修
设备以及各种辅助工具及配件,再流焊机等生产设备。产品组配与包装:食品行
业、橡塑五金行业、机械制造行业的产品组装与包装。总之,机器视觉技术在许
多行业已经得到了很好的应用,在应用中占据着举足轻重的地位。
机器视觉技术已经运用在许多领域中,包括在工业、科研、军事等方面。机
器视觉在工业方面应用是十分常见的。各种产品质量的控制和测量方面,产品的
分类和包装,机器人的视觉引导等方面。涉及到许多行业:电子、半导体、医用、
食品、汽车、印刷等等。科研方面也应用到机器视觉,例如生物研究和化学药物
等研究。军事方面例如宇航工程,军事目标打击(识别和跟踪)及各种测量。
1.3.1 机器视觉在电子行业的应用
机器视觉传感技术在半导体工业上的应用早在二十年前就已开始,半导体设
备是机器视觉技术发源地并一直成为机器视觉赖以生存的巨大市场之一。半导体
制造业每一次技术上的飞跃,如晶圆越做越大,而内部线路越做越细,向超细间
距式器件挺进;每分钟生产线上需要检测、测量器件的数量越来越多,都将伴随
着新一轮半导体、电子生产装备的诞生。随之必将产生新的质量保证系统改善其
生产率和保证零次品率,进而促使机器视觉市场不断发展壮大。机器视觉技术本
身也随着电子行业以及光学、自动化等技术的发展而不断完善、发展。
半导体制造过程可以划分为前、中、后三段。在这三段中,每一段制程,机
器视觉都是必不可少的。在前、中段过程中,机器视觉主要应用在精密定位和检
测方面。没有精密定位,也就不可能进行硅片生产。中段制程是半导体制程的最
重要环节,与机器视觉相关的还有最小刻度测量。目前,后段制程则是机器视觉
应用非常广泛的环节。后段制程主要涉及晶圆的电器检测、切割、封装、检测等
过程。晶圆在切割前必须使用机器视觉系统检测出瑕疵,并打上标记。检测完毕
切割过程中需要利用机器视觉系统进行精确快速对准定位,采用基于机器视觉技
术的预对准技术具备很强的速度优势。基于机器视觉的解决方案,只需要半秒钟
就能定位硅片中心并对准切口。美国知名机器视觉厂商 Cognex 生产的智能相机
In-Sight1820 就有类似的应用。切割过程开始后也要利用机器视觉进行定位。如