石鑫华视觉 手机微信QQ:13450001061

视觉教程

NI Vision图像处理开发宝典(第二版)

文章来源:本站时间:2022-03-04 16:37:12 点击:1877

NI Vision图像处理开发宝典(第二版)

image1.png

目录
NI Vision图像处理开发宝典(第二版)      1
版权声明         4
读者利益         6
感谢         6
前言         6
NI Vision图像处理宝典(第二版)与第一版区别      7
第1章 结构框架   8
1.1 编程风格 8
1.2 编程框架 11
1.3 通用图像处理平台项目结构 20
1.4 通用图像处理平台流程图      25
1.5 通用图像处理平台结构框架-生产者消费者         26
1.6 双相机或多相机结构框架      29
第2章 功能函数与主程序   33
2.1 功能函数与模块      33
2.1.1 相机驱动程序       35
2.1.2 Datalog数据记录 35
2.1.3 Sub VI子函数         42
2.2 主程序与功能实现 75
2.2.1 主程序前面板说明       77
2.2.2 主程序初始化       79
2.2.3 前面板事件响应  102
2.2.4 程序退出       169
2.2.5 单相机程序框图与双相机程序框图  172
第3章 图像处理实例   174
3.1 尺寸测量 174
3.1.1 视觉助手生成脚本       174
3.1.2 视觉助手生成LabVIEW代码      176
3.1.3 生成LabVIEW代码的优化  177
3.1.4 通用图像处理平台中加载图像处理-clamp函数       190
3.1.5 自动运行       190
3.2 二维码识别      192
3.2.1 视觉助手生成脚本       192
3.2.2 视觉助手生成LabVIEW代码      195
3.2.3 生成LabVIEW代码的优化  197
3.2.4 通用图像处理平台中加载图像处理-QR识别函数   206
3.2.5 数据判断       207
3.2.5 图像参数       207
3.2.6 初始化  210
3.2.7 结果保存       211
3.2.8 自动运行       211
3.3 模式匹配 212
3.3.1 视觉助手生成脚本       213
3.3.2 视觉助手生成LabVIEW代码      215
3.3.3 生成LabVIEW代码的优化  219
3.3.4 通用图像处理平台中加载图像处理-模式匹配函数 224
3.3.5 添加匹配边框       229
3.3.6 ROI赋值         233
3.3.7 模板文件的制作  237
3.3.8 自动运行效果       256
3.4 形状检测-圆    258
3.4.1 视觉助手生成脚本       258
3.4.2 视觉助手生成LabVIEW代码      260
3.4.3 生成LabVIEW代码的优化  261
3.4.4 通过图像处理平台加载图像处理-形状检测查找圆函数 268
3.4.5 初始化控件  269
3.4.6 图像参数值改变  269
3.4.7 ROI赋值         270
3.4.8 数据判断       274
3.4.9 结果保存       275
3.4.10 简单标定    275
3.4.11 标定数据标定    275
3.4.12 运行效果    287
3.5 LED编带机方向判断        288
3.5.1 视觉助手生成脚本       289
3.5.2 视觉助手生成LabVIEW代码      293
3.5.3 生成LabVIEW代码的优化  296
3.5.4 通过图像处理平台加载图像处理-方向判断函数     313
3.5.5 数据判断       314
3.5.6 结果保存       314
3.5.7 初始化控件  315
3.5.8 参数设置       316
3.5.9 自动运行       327
3.5.10 执行效率研究    328
3.5.11 图像采集、图像处理串行处理         336
3.5.12 改善后自动运行         339
3.6 OCR字符识别  342
3.6.1 视觉助手生成脚本       343
3.6.2 视觉助手生成LabVIEW代码      346
3.6.3 生成LabVIEW代码的优化  348
3.6.4 通过图像处理平台加载字符识别函数       358
3.6.5 自定义字符识别ROI   360
3.6.6 学习字符集文件  360
3.6.7 初始化等修改       362
3.6.8 自动运行效果       365
3.7 单IO触发双相机(大恒图像MER-130-30UM+粒子分析、灰度测量、QR码识别)      366
3.7.1 项目基本需求介绍       366
3.7.2 项目使用硬件       369
3.7.3 软件基本界面       370
3.7.4 软件基本功能实现       376
3.7.5 运行效果       439
3.8 独立4相机硬件触发与4相机IO卡触发框架(Basler Aca2500-14GM+Adlink PCI-7230)     442
3.8.1 独立4相机硬件触发框架搭建  443
3.8.2 独立4相机IO卡触发框架搭建 463
第4章 常见硬件驱动与软件处理方法       478
4.1 串口IO卡驱动方法         478
4.2 ADLINK IO卡PCI-7230驱动方法     481
4.3 松下PLC串口通信 491
4.4 两条直线间的距离 496
4.5 测量螺丝牙距 502
4.6 提取所有轮廓曲线 504
4.7 图像处理中的定位方法 505
4.8 查找两点求坐标转换(ROI跟随目标移动) 507
4.9 接插件正位度与平整度 511
4.10自定义找圆算法     516
第5章 应用程序与安装程序的生成与授权       547
5.1 应用程序的生成      547
5.1.1 项目构成       547
5.1.2 新建应用程序       551
5.2 使用LabVIEW开发的机器视觉系统包含的组件 583
5.2.1 LabVIEW Run Time Engine运行引擎    583
5.2.2 NI Vision Common Resources         585
5.2.3 NI Vision Development Module Run Time      586
5.2.4 NI IMAQdx      587
5.2.5 NI VISA   588
5.3 安装程序的生成      589
5.3.1 生成安装程序       589
5.3.2 安装程序在无NI环境中的验证          611
5.4 NI视觉正版授权问题      633
5.4.1 哪些组件需要收费       633
5.4.2 不使用视觉许可证且能正版应用NI视觉的方法     633

版权声明尊敬的读者,当您看到本页时,表示您已经获得了NI Vision图像处理宝典(第二版)》的相关版本(电子书等形式)。无论您从何渠道获得本书,您仅拥有阅读权,NI Vision图像处理宝典(第二版)》著作权归石鑫华所有,未经石鑫华同意,您无权将NI Vision图像处理宝典(第二版)》用于出版、印刷、转售、淘宝、复印、扫描、网络发布、网盘共享等。为了维护作者的权益,分发给您的复本可能是加密的PDF文档,也许无法用于打印、复制等,其中的图片也有可能包含与您相关的水印等情况,敬请谅解!请尊重作者的劳动成果,买这本书的钱,对于做视觉的您来说,真应该是小意思。当然,对于作者来说,全国需要这类书籍的人也屈指可数,多卖一本少卖一本也发不了财。因此,如果你对本书有兴趣,请不要再跟作者讨价还价。您不是在菜市场买菜,您买的是一份可以有更高回报的经验分享。

著作权证书

作品已经申请著作权
    《NI Vision图像处理宝典(第二版)》已经申请著作权保护,盗版必究!
读者利益亲爱的读者同志,当您通过正规渠道获得NI Vision图像处理宝典(第二版)》的复本时,表示您遵守了相关的法律法规。同时也表示了您对知识产权的承认以及对本书作者的尊重。
为了提升正版阅读体验,在您购买本书时,可在作者网站shixinhua.com论坛中注册相关ID,并通知作者,作者将为您提高相应的权限,以查看、下载论坛有限制的阅读内容。同时,您将可以获得优先的技术支持。您通过石鑫华视觉(http://shixinhua.com)可以了解到,作者在机器视觉行业还算有较丰富的应用经验,对于初学者或者是对机器视觉了解不深的工程师,或者可以提供一些必要的帮助,让您可以少走许多弯路,更快的掌握知识,更高效的完成您的机器视觉案例。
购买本书的用户,可以优选获得作者开发的一些基于通用图像处理平台的图像处理分析子函数。请您随时关注石鑫华视觉http://shixinhua.com
感谢首先,感谢您支持作者。您是上帝,您的支持就是作者前进的动力。因此要特别感谢。
其次,感谢NI。因为NI为我们提供了这么好的视觉应用软件,可以非常快的设计验证视觉项目,了解机器视觉与图像处理。
第三,感谢MV。没有MV,我们大家也不会走进机器视觉这个圈子。因此我们大家都要感谢MV。
前言《NI Vision图像处理宝典(第二版)》是基于LabVIEW 2013与Vision Development Module 2013(VDM2013)、Vision Assistant2013以及LabVIEW2014SP1、NI VISION2014SP1、VAS2015.02等版创作的。因此如果有购买源代码套餐,请考虑使用LabVIEW 2013版、LabVIEW2014SP版的打开或更高版本的打开(如现在的LabVIEW2015、LabVIEW2016等版本)。部分实例,可以照猫画虎的用于旧的版本的,但是部分例子,如OCR等,因为有多行字符识别等,因此需要2013版以后的才可以识别。而对于模式匹配等,2013版与2012版的差别也比较大,因此建议还是以2013版为准。对于第二版中的第三章中的3.7、3.8及第四章、第五章均以LabVIEW2014SP1与NI VISION2014SP1为基础。
《NI Vision图像处理宝典(第二版)》以石鑫华视觉出品的通用图像处理平台为基础进行讲解。主要讲解了如何利用LabVIEW编写一套图像处理程序。NI Vision图像处理宝典(第二版)》并没有详细介绍VDM中的每一个函数该如何使用,而是介绍如何使用LabVIEW与视觉助手、VDM进行混合编程,以使其能完成图像处理的任务。如何使用视觉助手生成脚本,以及更多的项目应用,请参考《基于Vision Assistant的图像处理实用教程》。NI Vision图像处理宝典(第二版)》是对《基于Vision Assistant的图像处理实用教程》的延续,当您使用《基于Vision Assistant的图像处理实用教程》中的内容生成脚本后,下一步就是该生成VI代码,用于LabVIEW中了。如果在这里您被编程难住了,那么不用担心 ,使用NI Vision图像处理宝典(第二版)》后,您将彻底明白,LabVIEW与VDM、视觉助手是如何工作的。
《NI Vision图像处理宝典(第二版)》中代码内容是以通用图像处理平台为基础的,其中涉及到的许多例子,也是在石鑫华视觉出售的。客户可以根据教程中的内容,自己编写相关的代码,以完成图像处理程序的编写。如果觉得这样比较浪费时间,又或者您希望赞助一下石鑫华视觉,可以试着购买软件代码,点此进入了解更多软件代码
依据NI Vision图像处理宝典(第二版)》,作者认为只要您不是太菜的鸟,编写一套完美的图像处理程序,基本不在话下。如果您觉得看书太痛苦,那么还是建议您购买一套软件,并且找石鑫华,上门培训几天,就更容易掌握NI图像处理的基本方法了!
在阅读NI Vision图像处理宝典(第二版)》之前,请先学习使用NI Vision Assistant视觉助手。同时,您应该对LabVIEW这样的编程平台,有一定的了解,这样对于您了解图像处理的编程,将有非常大的帮助。因为NI Vision图像处理宝典(第二版)》中的许多与LabVIEW相关的编程方法,并不会详细的解释,是在默认您已经了解LabVIEW的相关机制、原理的情况下进行讲解的。
NI Vision图像处理宝典(第二版)与第一版区别NI Vision图像处理宝典在作者创作的书籍中,销量是比较好的,因此也有一些盗版。为了打击盗版,对第一版进行了一些内容更新。同时,也是在第一版创作的基础上,认为有些内容没有介绍到,而有些内容比较多余或在其它作品中有介绍,也进行了一些修正。
第一版中的第一章概述,在第二版中删除掉,这个对于学习NI VISION实际作用不大,所以删除了。
第一版第二章变成了第二版的第一章,并且增加了1.5和1.6两节内容。
第一版第三章变成了第二版的第二章,并且其中的第一节功能函数与模块中的相机驱动程序,删掉了。因为相机驱动程序功能在作品《NI驱动相机采集图像指南中》有更为详细的介绍。如果需要相机驱动教程,可以购买《NI驱动相机采集图像指南中》。第一版中的第四章变成了第二版第三章,并且添加了3.7 单IO触发双相机(大恒图像 MER-130-30UM+粒子分析、灰度测量、QR码识别)、3.8 独立4相机硬件触发与4相机IO卡触发框架(Basler Aca2500-14GM+Adlink PCI-7230)两个多相机的实例。第一版中的实例,都是单相机的,且大部分都是以图片进行演示的,而第二版中3.7、3.8则为多相机的实例,且与硬件强相关的实例,更有实战意义。
第二版增加了第4章 常见硬件驱动与软件处理方法。如与硬件相关的串口IO卡驱动方法(3.7节中的实例使用到)、ADLINK IO卡 PCI-7230驱动方法(3.8节中实例使用),松下PLC串口通信方法;两条直线间的距离、测量螺丝牙距、提取所有轮廓曲线、查找两点求坐标转换(ROI跟随目标移动)、接插件正位度与平整度、自定义找圆算法等软件方法。
第二版增加了第5章 应用程序的生成与安装程序的生成及授权问题。这章内容,有很强的应用性。如果是已经学会了程序生成的,那么作用不大,但是对于不会生成程序的,帮助很大。而且授权问题,可以给用户提供软件正版化相关的若干问题的解决方法。
第一版全书440页,第二版全书则有近640页,比第一版多了200页。内容更丰富更实用,是学习NI视觉不可多得的理想教材!
第1章 结构框架1.1 编程风格

软件编程,编写到一定程度后,其实不是再考虑技术问题、函数问题、功能问题,而是风格问题。风格中,框架是非常重要的,因为一个好的框架,对于软件后期的维护、升级、改造等,都是非常有帮助的。而且一个好的框架,可以将函数功能模块化,可以让整个团队参与进来进行开发,也可以充分利用以往的模块函数,从而使编程变得更简单。
对于LabVIEW编程来讲,风格、框架显得尤为重要。LabVIEW是一款图形化编程语言,其中有一个关键的概念叫数据流,即它的数据是通过在线、节点之间流动的,这个在编程调试使用慢动作(幻灯片:高亮执行显示过程)时,就特别生动。

图1 点击此灯泡工具,使用慢动作

图2 高亮执行过程
由图2中看到,当高亮执行程序时,可以看到数据线上有一个圆点在流动,这个就是数据流的概念。
高亮执行程序在调试时,是非常有用的,这样可以清楚知道数据流向以及当前的节点中的数据值等。所以这对于调试来讲,这是经常用到的工具。
好工具有了,这时还得有好的框图。图2中的框图是通用平台中的部分代码,比较简单明了,还有非常丰富的解释,因此调试也会变得简单。如果给你上一盘炒面,你就会觉得LabVIEW调试会变得多么的苍白无力:

图3 略显复杂的程序框图
图3所示的程序框图,其连线明显要多许多了,这是要调试,就麻烦许多了。LabVIEW编程,特别是在初学时,不会使用一些高级的框架,这时就使劲的连线、连线、再连线,最后的结果就是一个程序就一个VI,程序框图在一个屏幕中都无法显示完,得拉好几页才能看完,可能某一页或几万,全是五颜六色的线条,那时我们调试将变成崩溃状态。
因此使用LabVIEW编程,一定要善于使用框架以及一些基本的良好编程习惯,如常用功能子VI化,同一VI的参数捆绑成簇,相同功能的模块使用动状态机,主要功能位置添加注释信息等。只有这样,我们编写的程序,才能在后面的维护、修改、或者其它人使用时,可以轻松的上手。不然的话,就算当时把程序编写完成了,可是过几个月后说要升级一下,结果自己都看不明白了。
下图所示,是将图像处理函数子VI化,当然我们也可以将子VI的框图在主程序中实现,但是这样会给程序显示、调试带来许多麻烦。

图4 功能函数子VI化

图5 函数参数捆绑成簇
    上图所示,为图像处理函数子VI,可以看到,参数传递是通过图像参数这个族来控制的,进入子VI后,再解除捆绑,这样在主调用VI的程序框图中(图4中),连线将变得非常简单,而在子VI中连线也相对简单。虽然中间加入了按名称捆绑族以及按名称解除捆绑等操作,会略微耗费一点时间,但是这点耗时对于整个程序来讲,是微不足道的,反而可以提高我们的编程效率。

图6 状态机
状态机不仅可以用于生产者消费者模式,也可以用于功能函数中。特别是对于功能模块,其中会包含多个搜索过程的模块,则完全可以考虑使用状态机。如上图所示的数据库操作,以及其它的如用户登陆、配置文件操作、相机操作、图像内存操作等等。这些功能模块,可能会有一个共同的特点,即其中会有一个引用,如数据库引用、配置文件引用、相机引用、图像内存引用等。使用状态机,将引用保存到移位寄存器中,只要调用的主程序未停止,则引用会一直在子VI的移位寄存器中有效的保存,这就给主程序中调用状态机中不同的状态提供了可能。如果不使用状态机和移位寄存器,则引用可能无法传递,也就不能在不同的地方调用了,要想调用,就得连线,这对于大型程序而言,是不可想象的。
LabVIEW编程风格类的书籍,大家可以在书店或网络中找到相关的教程,如《软件工程方法在LabVIEW中的应用》、《The Labview Style Book》(国内有翻译小组专门翻译过,有双语版)等教程,都是介绍LabVIEW编程风格、框架、使用技巧方面的书籍。
购买链接:


首页
84162741QQ
联系