前言
在电子学和计算机科学中,图像处理、分析与机器视觉一直是一个十分活跃的分支。随着过去30年电子和计算机技术的迅猛发展,人们对这一分支的研究已经不再局限于图像处理分析理论和实验室验证,而是不断向机器视觉领域延伸。
机器视觉主要研究各种图像处理分析技术在实际工业环境中的应用。目前,国内外这方面的研究日趋深入,相关的书籍也层出不穷。但是,大多数书籍更倾向于对理论和算法进行抽象讲解。对于大部分工程人员来说,要将这些理论转化为具体的工程实践,仍有不少的困难需要克服。此外,由于很多客观条件的制约,工程人员无法深入地研究图像处理与分析的各种理论和算法。因此,对他们而言,一套封装了各种算法且能快速解决各种问题的平台工具更具意义。至于理论研究和算法等工作,应留给平台工具开发人员去完成。
虚拟仪器利用计算机把高性能模块化硬件和可灵活定制的软件相结合,完成各种测试、测量和自动化任务。National Instruments(NI)公司的LabVIEW是一个可视化、跨平台、使用图形化编程语言的虚拟仪器开发平台。它广泛支持各种硬件,且包含丰富的面向应用的封装函数库。这些可扩展的函数库覆盖面很广,包括数据采集、信号处理、数学计算、统计分析、数据通信、数据库、移动开发、嵌入式开发、FPGA和运动控制等。对于图像处理、分析和机器视觉系统开发,NI公司提供了与LabVIEW无缝集成的函数库NI Vision。工程人员在LabVIEW中使用它,可快速构建大型机器视觉自动化系统。
本书基于LabVIEW和NI Vision,介绍图像处理、分析与机器视觉的工程应用和系统开发技术。全书根据读者对图像处理、分析与机器视觉知识掌握的程度和实际需求的不同,分为机器视觉系统构建、图像操作与增强和特征识别与机器决策三大部分。
第1部分包括第1~6章,主要讨论机器视觉系统的成像系统模型原理、镜头相机部件的选型、系统的搭建和校准以及图像采集、显示和存储等技术。通过学习这些内容,读者将能按照分辨率工程应用的需求,完成机器视觉系统搭建,并能用其采集用于后续处理的图像,并对图像进行显示和存储。
第2部分包括第7~10章,主要讨论图像的操作、图像变换、图像灰度分析以及图像的空间域和频域增强技术。由于这些技术的理论知识几乎在所有图像处理类的大学教程或工程参考书籍中都有介绍,因此本书第2部分内容重点介绍这些技术在工程实践中的作用和使用方法。当然,这部分内容中对理论知识作了汇总性介绍,这不仅完全可以满足初学图像处理和分析技术的工程人员或在校大学生的需要,还能帮助他们在各种繁杂的信息中理清脉络。
第3部分包括第11~19章,介绍机器视觉软件开发的关键技术,包括图像分割、形态学处理、特征提取、特征分析、特征在机器视觉系统开发中的应用以及目标测量、图像模式匹配、目标分类识别等技术。这部分将重点放在已经完成系统搭建和图像增强后的机器视觉软件开发上。在进行机器视觉软件开发时,不仅要考虑软件工作的理论基础,还要考虑其在实际工作环境中保持鲁棒性和实时性的前提下,仍能对各种变化因素具有不变性。例如,即使出现光照变化、被测件的位置变化、尺寸变化或被测件旋转等情况,机器视觉软件也仍能正常工作。此外,这部分内容还介绍了色彩空间和色彩匹配、色彩定位、彩色模式匹配以及色彩分类识别等技术,将机器视觉扩展到彩色图像范围。最后,还介绍了机器视觉仪表和条码读取技术。这部分内容适合进行机器视觉系统开发的工程人员或在校的研究生或博士生。
全书尽可能覆盖基于LabVIEW和NI Vision的图像处理、分析与机器视觉系统开发的最新技术。为帮助读者深入理解书中的内容,本书还精心收集了各种具有典型性的图像,并基于LabVIEW和NI Vision的最新版本创建了各种实例程序。这些实例图像和程序的代码可以从清华大学出版社官方网站(http://www.tup.com.cn)下载。
本书的编写是一个艰难和长期坚持的过程。2012年我的《LabVIEW虚拟仪器项目开发与管理》一书出版后,我想继续将基于LabVIEW开发图像处理、分析和机器视觉系统的一些经验和心得汇总成书。恰巧那时清华大学出版社和NI公司也计划联合出版一套LabVIEW技术丛书。在得到邀约后,我就与清华大学出版社一起制订了本书的编写计划。在第1部分的编写过程中,因工作原因,我不得不和妻儿迁居国外,后续章节的编写也是在新环境和工作之余完成的。感谢妻子和儿子在此过程中给予我的极大支持和理解。此外,许多同行和LAVA、NI Discussion Forums、VI Home、GSD Zone等论坛上的朋友对本书内容的规划提出了不少宝贵意见,他们的鞭策和关注给了我不断坚持的信念,在此向他们表示衷心的感谢!
本书中的实例程序和图像可通过扫描封底的二维码在益阅读网站上下载。
在下载的实例程序和图像目录中,同一章中的实例程序存在同一目录中,并按照“CH-章号”的形式命名。例如,第15章的所有实例代码存放在CH-15目录中(如下图)。
实例程序使用的图像和书中的插图则统一存放在IMGs目录中。为了程序运行方便,实例图像并未按章划分目录存放,而是在各实例程序代码和书中代码插图中明确说明了图像的路径。例如,第16章插图中的代码使用了保存在IMGs目录下Bracket子目录中的Bracket3.png图像。
由于时间和篇幅的限制,本书内容很难覆盖基于LabVIEW的图像处理、分析和机器视觉技术的各个方面,也难免存在不妥之处,请读者原谅并提出宝贵意见。
衷心希望机器视觉和虚拟仪器技术能在LabVIEW助力下有长足发展!
笔者
2018年3月于多伦多