LabVIEW视觉开发详解:从入门到精通

需积分: 49 147 下载量 174 浏览量 更新于2024-07-18 13 收藏 58.91MB PDF 举报
"LabVIEW+Vision图像处理开发宝典是一本详细介绍如何使用LabVIEW与NIVision进行图像处理开发的专业书籍。作者石鑫华通过丰富的案例和详细讲解,帮助读者掌握LabVIEW视觉应用的核心技术。 本书首先介绍了NILabVIEW和NIVision的基础知识,包括NILabVIEW作为强大的图形化编程环境,以及NIVision作为视觉开发模块的角色。NIVision包含了视觉助手Vision Assistant和视觉生成器Vision Builder for Automation Inspection (VBAI),前者是一个全面的图像处理工具,后者则是一个独立运行的应用程序,适用于快速构建视觉检测系统。此外,还有视觉采集软件Vision Acquisition Software (VAS),它是用于驱动相机和图像采集卡的驱动程序。 书中详细阐述了NI各款视觉软件的应用范围,如LabVIEW广泛应用于各种自动化系统和测试测量;VDM主要供开发者自定义视觉解决方案;Vision Assistant适合快速原型设计和预处理;VBAI提供了一种无需LabVIEW编程的可视化界面,适合快速实现检测任务;而VAS确保了对不同相机和硬件的支持。 关于软件的兼容性,书中提到LabVIEW与多种操作系统兼容,并遵循特定的生命周期策略,包括年度发行版和生命周期的不同阶段。视觉软件同样需要考虑与LabVIEW版本以及其他硬件设备的兼容性问题。 在结构框架部分,作者强调了编程风格和框架的重要性,提供了通用图像处理平台的项目结构和流程图,帮助读者理解如何组织和设计视觉应用。 在功能函数与主程序章节,详细探讨了相机模块的功能,包括如何打开、设置属性、配置和控制相机,以及如何读写视频模式。此外,还介绍了如何调用大恒相机的DLL函数,例如获取设备信息、打开设备、分配资源、设置分辨率、快门模式、增益,以及获取图像尺寸等。 《LabVIEW+Vision图像处理开发宝典》是一部全面的指南,不仅涵盖了NILabVIEW和NIVision的基础知识,还深入到具体的编程实践,对于想要在机器视觉领域使用LabVIEW进行开发的工程师来说,是一份宝贵的参考资料。"
2017-11-12 上传
LabVIEW Vision图像处理开发宝典... 1 版权声明... 7 读者利益... 7 感谢... 7 前言... 8 第一章 概述... 9 第一节 NI LabVIEW & NI Vision简介... 9 第二节 NI各款视觉软件的应用范围... 14 2.1 LabVIEW的应用... 14 2.2 VDM视觉开发模块的应用... 15 2.3 VA视觉助手的应用... 1 6 2.4 VBAI视觉生成器的应用... 17 2.5 VAS视觉采集软件的应用... 18 第三节 NI软件的兼容性... 19 3.1 LabVIEW与操作系统兼容性... 19 3.2 LabVIEW的生命周期策略... 20 3.2.1 NI LabVIEW年度发行... 20 3.2.2 NI LabVIEW生命周期策略的各个阶段... 21 3.2.3 NI LabVIEW生命周期策略... 21 3.3 视觉软件的兼容性... 23 第二章 结构框架... 27 第一节 编程风格... 27 第二节 编程框架... 30 第三节 通用图像处理平台项目结构... 39 第四节 通用图像处理平台流程图... 44 第三章 功能函数与主程序... 47 第一节 功能函数与模块... 47 1.1 Camera相机模块... 49 1.1.1 打开相机... 51 1.1.2 设置属性... 53 对照MAX中的属性设置属性... 56 使用.icd文件查看属性... 58 使用枚举属性函数查看属性... 60 读写相机属性文件... 60 1.1.3 读视频模式... 61 1.1.4 写视频模式... 62 1.1.5 配置相机... 63 1.1.6 采集图像... 64 1.1.7 停止相机... 65 1.1.8 关闭相机... 66 1.1.9 大恒相机DLL调用... 67 函数LvGetDeviceTotal 68 函数LvOpenDevice. 69 函数LvAllocateResources. 71 函数LvSetResolution. 73 函数LvSetSnapMode. 75 函数LvSetGain. 78 函数LvGetImageWidth. 81 函数LvGetImageHeight. 83 函数LvSetAOI 83 函数LvSetShutter. 88 函数LvSetADCLevel 91 函数LvSetTimeout. 94 函数LvGrabSingle. 96 函数LvExportImageData. 101 函数LvStartGrab. 102 函数LvStopGrab. 104 函数LvCloseDevice. 106 函数使用简要说明... 108 1.2 Datalog数据记录... 109 1.2.1 Open打开数据库... 110 1.2.2 Write写数据... 111 1.2.3 Search查询数据... 113 1.2.4 Update更新数据... 114 1.2.5 Delete删除数据... 115 1.2.6 Close关闭数据库... 115 1.3 Sub VI子函数... 116 1.3.1 ImageforUse. 117 Create创建图像缓存... 117 Use使用图像... 118 Copy复制图像... 119 Dispose释放图像缓存... 120 1.3.2 帮助... 120 1.3.3 等待(有错误)... 121 1.3.4 读写参数... 122 1.3.5 读写最后机种... 126 1.3.6 仿真采集图像... 129 1.3.7 放大图像算子... 131 1.3.8 缩小图像算子... 132 1.3.9 检查文件夹存在及新建... 133 1.3.10 良率计算... 134 1.3.11 路径(开发与应用环境)... 135 1.3.12 罗列文件-多文件类型... 137 1.3.13 判断数组大小并截取子集... 138 1.3.14 任一范围随机数... 139 1.3.15 首行行号... 140 1.3.16 提示信息... 143 1.3.17 新建文件... 145 第二节 主程序与功能实现... 149 2.1 主程序前面板说明... 151 2.2 主程序初始化... 153 2.2.1 程序执行时的原始初始化... 154 初始化状态提示... 155 初始化主队列... 156 初始化从队列... 156 建立相对路径... 157 前面板全屏运行... 157 访问网页... 159 2.2.2 队列初始化... 160 元素出队列... 161 状态机-初始化... 162 循环控制及状态机控制... 163 状态机-初始化控件... 165 状态机-加载机种参数... 169 状态机-初始化参数... 171 2.3 前面板事件响应... 176 2.3.1 用户登陆/退出事件... 176 2.3.2 设置参数... 185 2.3.3 保存参数... 189 2.3.4 参数另存为... 192 2.3.5 打开参数... 195 2.3.6 运动... 197 2.3.7 连续采集... 198 2.3.8 单帧采集... 201 2.3.9 图像处理... 203 2.3.10 自动运行... 205 2.3.11 缩小图像... 215 2.3.12 放大图像... 215 2.3.13 原始尺寸... 216 2.3.14 适合窗口... 217 2.3.15 保存图像... 218 2.3.16 帮助... 221 2.3.17 最小化... 221 2.3.18 退出程序... 223 2.3.19 访问主页... 225 2.3.20 机种... 226 2.3.21 规格参数... 228 2.3.22 相机参数... 230 2.3.23 运动参数... 232 2.3.24 图像参数... 233 2.3.25 其它参数... 240 2.4 程序退出... 243 2.5 单相机程序框图与双相机程序框图... 246 第四章 图像处理实例... 248 第一节 尺寸测量... 248 1.1 视觉助手生成脚本... 248 1.2 视觉助手生成LabVIEW代码... 250 1.3 生成LabVIEW代码的优化... 251 1.3.1 删除打开图像文件代码... 251 1.3.2 删除Image显示控件调色板类型... 252 1.3.3 删除错误代码判断... 254 1.3.4 删除IVA代码... 255 1.3.5 合并部分函数输入控件... 259 1.3.6 优化输入输出控件... 261 1.4 通用图像处理平台中加载图像处理-clamp函数... 264 1.5 自动运行... 264 第二节 二维码识别... 266 2.1 视觉助手生成脚本... 266 2.2 视觉助手生成LabVIEW代码... 269 2.3 生成LabVIEW代码的优化... 271 2.3.1 删除冗余代码... 271 2.3.2 使用覆盖多段线函数覆盖条码边框... 271 2.3.3 优化输入输出控件... 278 2.4 通用图像处理平台中加载图像处理-QR识别函数... 280 2.5 数据判断... 281 2.5 图像参数... 281 2.6 初始化... 284 2.7 结果保存... 285 2.8 自动运行... 285 第三节 模式匹配... 286 3.1 视觉助手生成脚本... 287 3.2 视觉助手生成LabVIEW代码... 289 3.3 生成LabVIEW代码的优化... 293 3.3.1 删除错误判断代码和IVA存储结果代码... 293 3.3.2 改善模板图像的调用... 294 3.3.3 修改匹配数量... 294 3.3.4 优化输入输出控件... 295 3.4 通用图像处理平台中加载图像处理-模式匹配函数... 298 3.5 添加匹配边框... 303 3.6 ROI赋值... 307 3.7 模板文件的制作... 311 3.7.1 使用NI的Teplate Editor. 311 3.7.2 使用命令提示符调用Template Editor. 312 3.7.3 使用模式匹配库函数学习模板... 323 3.8 自动运行效果... 330 第四节 形状检测-圆... 332 4.1 视觉助手生成脚本... 332 4.2 视觉助手生成LabVIEW代码... 334 4.3 生成LabVIEW代码的优化... 335 4.3.1 删除错误判断代码和IVA存储结果代码... 335 4.3.2 删除打开图片代码... 337 4.3.3 设置图像参数自定义控件... 337 4.3.4 添加圆覆盖... 339 4.4 通过图像处理平台加载图像处理-形状检测查找圆函数... 342 4.5 初始化控件... 343 4.6 图像参数值改变... 343 4.7 ROI赋值... 344 4.8 数据判断... 348 4.9 结果保存... 349 4.10 简单标定... 349 4.11 标定数据标定... 349 4.12 运行效果... 361 第五节 LED编带机方向判断... 362 5.1 视觉助手生成脚本... 363 5.2 视觉助手生成LabVIEW代码... 367 5.3 生成LabVIEW代码的优化... 370 5.3.1 删除错误判断代码... 370 5.3.2 修改ROI 371 5.3.3 改善IVA Measure2函数... 373 5.3.4 坐标系优化与求交点优化... 376 5.3.5 设置图像参数自定义控件... 382 5.3.6 生成最终图像处理子函数... 386 5.4 通过图像处理平台加载图像处理-方向判断函数... 387 5.5 数据判断... 388 5.6 结果保存... 388 5.7 初始化控件... 389 5.8 参数设置... 390 5.8.1 定义左边ROI 391 5.8.2 查找左边... 392 5.8.3 定义顶边ROI 393 5.8.4 查找顶边... 394 5.8.5 定义参考坐标系... 395 5.8.6 定义检测区域... 396 5.8.7 参数设置流程... 396 5.9 自动运行... 401 5.10 执行效率研究... 402 5.11 图像采集、图像处理串行处理... 410 5.11.1 自动运行图像处理... 410 5.11.2 保存数据... 412 5.11.3 存储图像... 413 5.12 改善后自动运行... 413 第六节 OCR字符识别... 416 6.1 视觉助手生成脚本... 417 6.2 视觉助手生成LabVIEW代码... 420 6.3 生成LabVIEW代码的优化... 422 6.3.1 删除错误判断等冗余代码... 422 6.3.2 删除字符集参数设置... 423 6.3.3 覆盖兴趣区域和字符边框区域... 425 6.3.4 改善字符集文件操作... 427 6.4 通过图像处理平台加载字符识别函数... 432 6.5 自定义字符识别ROI 434 6.6 学习字符集文件... 434 6.7 初始化等修改... 436 6.8 自动运行效果... 439 转载 资源来源于网上
2019-04-22 上传
第一章 概述... 9 第一节 NI LabVIEW & NI Vision简介... 9 第二节 NI各款视觉软件的应用范围... 14 2.1 LabVIEW的应用... 14 2.2 VDM视觉开发模块的应用... 15 2.3 VA视觉助手的应用... 16 2.4 VBAI视觉生成器的应用... 17 2.5 VAS视觉采集软件的应用... 18 第三节 NI软件的兼容性... 19 3.1 LabVIEW与操作系统兼容性... 19 3.2 LabVIEW的生命周期策略... 20 3.2.1 NI LabVIEW 年度发行... 20 3.2.2 NI LabVIEW生命周期策略的各个阶段... 21 3.2.3 NI LabVIEW生命周期策略... 21 3.3 视觉软件的兼容性... 23 第二章 结构框架... 27 第一节 编程风格... 27 第二节 编程框架... 30 第三节 通用图像处理平台项目结构... 39 第四节 通用图像处理平台流程图... 44 第三章 功能函数与主程序... 47 第一节 功能函数与模块... 47 1.1 Camera相机模块... 49 1.1.1 打开相机... 51 1.1.2 设置属性... 53 对照MAX中的属性设置属性... 56 使用.icd文件查看属性... 58 使用枚举属性函数查看属性... 60 读写相机属性文件... 60 1.1.3 读视频模式... 61 1.1.4 写视频模式... 62 1.1.5 配置相机... 63 1.1.6 采集图像... 64 1.1.7 停止相机... 65 1.1.8 关闭相机... 66 1.1.9 大恒相机DLL调用... 67 函数LvGetDeviceTotal 68 函数LvOpenDevice. 69 函数LvAllocateResources. 71 函数LvSetResolution. 73 函数LvSetSnapMode. 75 函数LvSetGain. 78 函数LvGetImageWidth. 81 函数LvGetImageHeight. 83 函数LvSetAOI 83 函数LvSetShutter. 88 函数LvSetADCLevel 91 函数LvSetTimeout. 94 函数LvGrabSingle. 96 函数LvExportImageData. 101 函数LvStartGrab. 102 函数LvStopGrab. 104 函数LvCloseDevice. 106 函数使用简要说明... 108 1.2 Datalog数据记录... 109 1.2.1 Open打开数据库... 110 1.2.2 Write写数据... 111 1.2.3 Search查询数据... 113 1.2.4 Update更新数据... 114 1.2.5 Delete删除数据... 115 1.2.6 Close关闭数据库... 115 1.3 Sub VI子函数... 116 1.3.1 ImageforUse. 117 Create创建图像缓存... 117 Use使用图像... 118 Copy复制图像... 119 Dispose释放图像缓存... 120 1.3.2 帮助... 120 1.3.3 等待(有错误)... 121 1.3.4 读写参数... 122 1.3.5 读写最后机种... 126 1.3.6 仿真采集图像... 129 1.3.7 放大图像算子... 131 1.3.8 缩小图像算子... 132 1.3.9 检查文件夹存在及新建... 133 1.3.10 良率计算... 134 1.3.11 路径(开发与应用环境)... 135 1.3.12 罗列文件-多文件类型... 137 1.3.13 判断数组大小并截取子集... 138 1.3.14 任一范围随机数... 139 1.3.15 首行行号... 140 1.3.16 提示信息... 143 1.3.17 新建文件... 145 第二节 主程序与功能实现... 149 2.1 主程序前面板说明... 151 2.2 主程序初始化... 153 2.2.1 程序执行时的原始初始化... 154 初始化状态提示... 155 初始化主队列... 156 初始化从队列... 156 建立相对路径... 157 前面板全屏运行... 157 访问网页... 159 2.2.2 队列初始化... 160 元素出队列... 161 状态机-初始化... 162 循环控制及状态机控制... 163 状态机-初始化控件... 165 状态机-加载机种参数... 169 状态机-初始化参数... 171 2.3 前面板事件响应... 176 2.3.1 用户登陆/退出事件... 176 2.3.2 设置参数... 185 2.3.3 保存参数... 189 2.3.4 参数另存为... 192 2.3.5 打开参数... 195 2.3.6 运动... 197 2.3.7 连续采集... 198 2.3.8 单帧采集... 201 2.3.9 图像处理... 203 2.3.10 自动运行... 205 2.3.11 缩小图像... 215 2.3.12 放大图像... 215 2.3.13 原始尺寸... 216 2.3.14 适合窗口... 217 2.3.15 保存图像... 218 2.3.16 帮助... 221 2.3.17 最小化... 221 2.3.18 退出程序... 223 2.3.19 访问主页... 225 2.3.20 机种... 226 2.3.21 规格参数... 228 2.3.22 相机参数... 230 2.3.23 运动参数... 232 2.3.24 图像参数... 233 2.3.25 其它参数... 240 2.4 程序退出... 243 2.5 单相机程序框图与双相机程序框图... 246 第四章 图像处理实例... 248 第一节 尺寸测量... 248 1.1 视觉助手生成脚本... 248 1.2 视觉助手生成LabVIEW代码... 250 1.3 生成LabVIEW代码的优化... 251 1.3.1 删除打开图像文件代码... 251 1.3.2 删除Image显示控件调色板类型... 252 1.3.3 删除错误代码判断... 254 1.3.4 删除IVA代码... 255 1.3.5 合并部分函数输入控件... 259 1.3.6 优化输入输出控件... 261 1.4 通用图像处理平台中加载图像处理-clamp函数... 264 1.5 自动运行... 264 第二节 二维码识别... 266 2.1 视觉助手生成脚本... 266 2.2 视觉助手生成LabVIEW代码... 269 2.3 生成LabVIEW代码的优化... 271 2.3.1 删除冗余代码... 271 2.3.2 使用覆盖多段线函数覆盖条码边框... 271 2.3.3 优化输入输出控件... 278 2.4 通用图像处理平台中加载图像处理-QR识别函数... 280 2.5 数据判断... 281 2.5 图像参数... 281 2.6 初始化... 284 2.7 结果保存... 285 2.8 自动运行... 285 第三节 模式匹配... 286 3.1 视觉助手生成脚本... 287 3.2 视觉助手生成LabVIEW代码... 289 3.3 生成LabVIEW代码的优化... 293 3.3.1 删除错误判断代码和IVA存储结果代码... 293 3.3.2 改善模板图像的调用... 294 3.3.3 修改匹配数量... 294 3.3.4 优化输入输出控件... 295 3.4 通用图像处理平台中加载图像处理-模式匹配函数... 298 3.5 添加匹配边框... 303 3.6 ROI赋值... 307 3.7 模板文件的制作... 311 3.7.1 使用NI的Teplate Editor. 311 3.7.2 使用命令提示符调用Template Editor. 312 3.7.3 使用模式匹配库函数学习模板... 323 3.8 自动运行效果... 330 第四节 形状检测-圆... 332 4.1 视觉助手生成脚本... 332 4.2 视觉助手生成LabVIEW代码... 334 4.3 生成LabVIEW代码的优化... 335 4.3.1 删除错误判断代码和IVA存储结果代码... 335 4.3.2 删除打开图片代码... 337 4.3.3 设置图像参数自定义控件... 337 4.3.4 添加圆覆盖... 339 4.4 通过图像处理平台加载图像处理-形状检测查找圆函数... 342 4.5 初始化控件... 343 4.6 图像参数值改变... 343 4.7 ROI赋值... 344 4.8 数据判断... 348 4.9 结果保存... 349 4.10 简单标定... 349 4.11 标定数据标定... 349 4.12 运行效果... 361 第五节 LED编带机方向判断... 362 5.1 视觉助手生成脚本... 363 5.2 视觉助手生成LabVIEW代码... 367 5.3 生成LabVIEW代码的优化... 370 5.3.1 删除错误判断代码... 370 5.3.2 修改ROI 371 5.3.3 改善IVA Measure2函数... 373 5.3.4 坐标系优化与求交点优化... 376 5.3.5 设置图像参数自定义控件... 382 5.3.6 生成最终图像处理子函数... 386 5.4 通过图像处理平台加载图像处理-方向判断函数... 387 5.5 数据判断... 388 5.6 结果保存... 388 5.7 初始化控件... 389 5.8 参数设置... 390 5.8.1 定义左边ROI 391 5.8.2 查找左边... 392 5.8.3 定义顶边ROI 393 5.8.4 查找顶边... 394 5.8.5 定义参考坐标系... 395 5.8.6 定义检测区域... 396 5.8.7 参数设置流程... 396 5.9 自动运行... 401 5.10 执行效率研究... 402 5.11 图像采集、图像处理串行处理... 410 5.11.1 自动运行图像处理... 410 5.11.2 保存数据... 412 5.11.3 存储图像... 413 5.12 改善后自动运行... 413 第六节 OCR字符识别... 416 6.1 视觉助手生成脚本... 417 6.2 视觉助手生成LabVIEW代码... 420 6.3 生成LabVIEW代码的优化... 422 6.3.1 删除错误判断等冗余代码... 422 6.3.2 删除字符集参数设置... 423 6.3.3 覆盖兴趣区域和字符边框区域... 425 6.3.4 改善字符集文件操作... 427 6.4 通过图像处理平台加载字符识别函数... 432 6.5 自定义字符识别ROI 434 6.6 学习字符集文件... 434 6.7 初始化等修改... 436 6.8 自动运行效果... 439 转载 资源来源于网上
2013-01-25 上传