LabVIEW 图像处理功能

news2024/10/6 4:14:13
设置成像系统并采集图像后,您可以分析和处理图像,以提取有关被检测对象的有价值信息。

内容

  • 图像分析
  • 图像处理
  • 斑点分析
  • 机器视觉

图像分析

影像分析结合了基于影像像素的灰度强度计算统计数据和测量的技术。您可以使用影像分析功能来确定影像质量是否足以完成检测任务。您还可以分析图像以了解其内容,并确定使用哪种类型的检查工具来处理您的应用程序。影像分析功能还提供可用于执行基本检测任务(如是否存在验证)的测量值。

可用于影像分析的常用工具包括直方图和线轮廓测量。

直方图

直方图对每个灰度级别的像素总数进行计数和绘制图形。使用直方图确定图像中的整体强度是否适合您的检测任务。根据直方图数据,您可以调整图像采集条件以获取更高质量的图像。

您可以通过查看直方图来检测传感器是否曝光不足或饱和。曝光不足的图像包含大量灰度值较低的像素,如图1a所示。低灰度值在直方图的下端显示为峰值,如图1b所示。

过度曝光或饱和的图像包含大量具有非常高灰度值的像素,如图2a所示。这种情况由直方图上端的峰值表示,如图2b所示。

 


图1.曝光不足的图像和直方图


2。曝光过度的图像和直方图

缺乏对比度:将物体与背景分开的策略依赖于两者强度的差异,例如明亮的粒子和较暗的背景。对图3b中直方图的分析表明,图3a具有两个或多个分离良好的强度群体。调整成像设置,直到采集图像的直方图具有应用所需的对比度。


图3.灰度图像和直方图


生产线轮廓

线剖面图绘制沿线的强度变化。它返回沿线的像素的灰度值并绘制图形。线剖面有助于检查组件之间的边界、量化强度变化的大小以及检测是否存在重复模式。

图4显示了具有均匀强度的明亮物体如何在剖面中显示为平台。物体与其周围背景之间的对比度越高,高原的坡度就越陡峭。另一方面,嘈杂像素会产生一系列狭窄的峰值。

图4.线和相应的线轮廓

返回页首

图像处理

使用从分析图像中收集的信息,您可能希望提高图像的质量以进行检查。您可以通过消除杂色、突出显示您感兴趣的要素以及将感兴趣的对象与背景分离来改善图像。可用于改善图像的工具包括:

  • 查找表
  • 空间过滤器
  • 灰度形态
  • 频域

查找表

查找表 (LUT) 转换将源图像中的灰度值转换为转换后图像中的其他灰度值。使用 LUT 变换通过修改对比度较差的区域的动态强度来提高图像的对比度和亮度。

空间过滤器

空间过滤器通过消除噪点以及平滑、锐化和变换图像来提高图像质量。视觉开发模块带有许多已经定义的过滤器,例如:

  • 高斯滤波器(用于平滑图像)
  • 拉普拉斯滤镜(用于突出显示图像细节)
  • 中阶和N阶滤波器(用于消除噪声)
  • Prewitt、Roberts 和 Sobel 滤波器(用于边缘检测)
  • 自定义过滤器

您还可以通过指定自己的过滤器系数来定义自己的自定义过滤器。

灰度形态

形态变换提取并改变图像中粒子的结构。可以使用灰度形态函数执行以下操作:

  • 过滤或平滑图像的像素强度
  • 通过以牺牲暗区为代价来扩大明亮区域来改变区域的形状,反之亦然
  • 删除或增强孤立的功能,例如深色背景上的明亮像素
  • 平滑逐渐变化的图案并增加边界区域的对比度

域处理 大多数影像处理

在空间域中执行。但是,在像往常一样分析和处理图像之前,您可能希望在频域中处理图像以删除不需要的频率信息。使用快速傅里叶变换 (FFT) 将图像转换为其频域。

返回页首

斑点分析

blob(二进制大对象)是具有相同逻辑状态的接触像素区域。图像中属于 blob 的所有像素都处于前景状态。所有其他像素都处于背景状态。在二进制图像中,背景中的像素具有值=0,而每个非零像素都是二进制对象的一部分。

可以使用 Blob 分析来检测映像中的 Blob,并对这些 Blob 进行选定的测量。

使用 Blob 分析查找统计信息,例如 Blob 的大小或 Blob 区域的数量、位置和状态。利用这些信息,您可以执行许多机器视觉检测任务,例如检测硅晶圆上的缺陷、检测电子板上的焊接缺陷,或 Web 检测应用程序,例如检测木板上的结构缺陷或检测塑料板上的裂缝。当零件形状或方向存在显著差异时,您还可以在运动控制应用程序中定位对象。

在对象的形状或方向存在显著差异的应用程序中,blob 分析是搜索对象的一种强大而灵活的方法。您可以使用通过 blob 分析获得的测量值的组合来定义唯一定义对象形状的要素集。

阈值化

阈值使您能够选择灰度和彩色图像中的像素值范围,以将所考虑的对象与背景分开。阈值将图像转换为像素值为 0 或 1 的二进制图像。此过程的工作原理是将值在一定范围内的所有像素设置为 1,称为阈值间隔,并将图像中的所有其他像素值设置为 0。图5a显示了灰度图像,图5b显示了阈值处理后的相同图像。

图5.阈值化前后的图像

二元形态

二元形态学操作提取并改变二元图像中粒子的结构。您可以在检测应用程序期间使用这些操作,以便在进行粒子测量之前改进二进制图像中的信息,例如面积、周长和方向。您还可以使用这些变换来观察区域的几何形状,并提取最简单的形式以进行建模和识别。

初级二元形态

主要形态学操作对二值图像进行工作,以根据其邻域处理每个像素。每个像素设置为 1 或 0,具体取决于其邻域信息和所使用的操作。这些操作始终会更改图像中粒子的整体大小和形状。

使用主要形态操作来扩展或缩小粒子、平滑对象的边界、查找粒子的外部和内部边界以及定位像素的特定配置。

高级二元形态

使用高级形态学操作填充颗粒中的孔洞、去除接触图像边界的粒子、去除不需要的小颗粒和大颗粒、分离接触粒子、查找粒子的凸包等。

颗粒测量

创建二进制图像并对其进行改进后,您最多可以进行 50 次粒子测量。通过这些测量,您可以确定斑点的位置及其形状特征。您可以使用这些功能根据一个或多个测量值对粒子进行分类或过滤。例如,您可以过滤掉面积小于 x 像素的粒子。

返回页首

机器视觉

最常见的机器视觉检测任务是检测图像中是否存在零件,并测量零件的尺寸以查看它们是否符合规格。测量基于图像中表示的物体的特征特征。传统上,图像处理算法将图像中包含的信息类型分类为边缘、表面和纹理或图案。不同类型的机器视觉算法利用并提取一种或多种类型的信息。

边缘检测

边缘检测器和衍生技术,如前耙、同心耙和辐条,可以高精度地定位物体的边缘。边是图像中相邻像素之间灰度值的重大变化。您可以使用边的位置进行测量,例如零件的宽度。您可以使用多个边缘位置来计算相交点、投影以及圆或椭圆拟合等测量值。

边缘检测是许多机器视觉应用的有效工具。边缘检测为您的应用程序提供有关对象边界位置和不连续性存在的信息。在以下三个应用领域中使用边缘检测 - 测量、检测和对齐。

测量

使用测量进行关键的尺寸测量,如长度、距离、直径、角度和计数,以确定被检测产品是否正确制造。组件或零件被分类或拒绝,具体取决于测量参数是在用户定义的公差限值之内还是之外。

图6显示了测量应用如何使用边缘检测来测量火花塞中的间隙长度。

图6.使用边缘检测测量火花塞电极之间的间隙

检波

检测应用的目的是使用线轮廓和边缘检测来确定零件是否存在。沿线轮廓的边由背景和前景之间的对比度级别以及过渡的斜率定义。使用此技术,您可以计算沿线轮廓的边数,并将结果与预期的边数进行比较。此方法为其他图像处理方法(如图像相关和模式匹配)提供了一种数值较少的替代方法。

图7显示了一个简单的检测应用,其中沿搜索线轮廓检测到的边缘数量决定了连接器是否已正确组装。检测八个边缘表明有四根电线,连接器通过检查,如图7a所示。任何其他边缘计数都表示连接器未正确组装,如图7b所示。

图7.使用边缘检测检测零件是否存在

您还可以使用边缘检测来检测结构缺陷(如裂纹)或外观缺陷(如零件上的划痕)。如果零件的强度均匀,这些缺陷表现为强度曲线的急剧变化。边缘检测可识别这些更改。

对准

对齐方式确定零件的位置和方向。在许多机器视觉应用中,要检查的对象可能位于图像中的不同位置。边缘检测在执行检测之前查找对象在图像中的位置,以便您只能检测感兴趣的区域。零件的位置和方向也可用于向定位设备(例如载物台)提供反馈信息。

图 8 显示了一个检测映像中磁盘左边缘的应用程序。可以使用边缘的位置来确定磁盘的方向。然后,您可以使用方向信息正确定位检查区域。

图8.使用边缘检测定位检测区域

模式匹配

模式匹配可定位与预定模板匹配的灰度图像区域。图案匹配可查找模板匹配项,而不考虑光线不足、模糊、噪点、模板偏移或模板旋转。

使用模式匹配在图像中快速定位已知的参考模式或基准点。通过模式匹配,您可以创建表示要搜索的对象的模型或模板。然后,您的机器视觉应用程序在每个采集的图像中搜索模型,计算每个匹配项的分数。分数与模型与找到的模式的匹配程度有关。

模式匹配算法是图像处理中一些最重要的功能,因为它们用于不同的应用。您可以在以下三种常规应用中使用图案匹配 - 对齐、测量和检查。

尺寸测量

您可以使用视觉开发模块中的尺寸测量或测量工具来获得可量化的关键距离测量值。典型测量包括:

  • 点之间的距离
  • 由三个或四个点表示的两条线之间的角度
  • 最佳线条、圆形或椭圆形贴合;
  • 几何形状的区域,如圆形、椭圆形和多边形

颜色检测

颜色可以通过提高对比度或将对象与背景分离来简化单色视觉检查问题。颜色检测涉及三个方面:

  1. 配色
  2. 颜色位置
  3. 颜色图案匹配

配色

颜色匹配量化图像区域中存在哪些颜色以及每种颜色的数量,并使用此信息检查另一个图像是否以相同的比例包含相同的颜色。

使用颜色匹配比较图像的颜色内容或图像中的区域以引用颜色信息。通过颜色匹配,您可以创建图像或在图像中选择包含要用作参考的颜色信息的区域。图像中的颜色信息可以由一种或多种颜色组成。然后,机器视觉软件学习图像中的3D颜色信息,并将其表示为1D色谱。机器视觉应用程序将整个图像或图像中区域的颜色信息与学习的色谱进行比较,计算每个区域的分数。分数与区域中的颜色信息与色谱所表示的信息的匹配程度有关。

图 9 显示了一个磁贴识别应用程序的示例。图 9a 显示了需要标识的磁贴。图 9b 显示了一组参考图块及其在颜色匹配期间获得的颜色匹配分数。

图9.使用颜色匹配识别磁贴

颜色位置

使用颜色位置可快速定位图像中的已知颜色区域。使用颜色位置,可以创建表示要搜索的颜色的模型或模板。然后,您的机器视觉应用程序在每个采集的图像中搜索模型,并计算每个匹配项的分数。分数指示模型中的颜色信息与找到区域中的颜色信息的匹配程度。

颜色定位算法提供了一种快速定位图像中具有特定颜色的区域的方法。在应用程序时使用颜色位置:

  • 需要图像中的位置和区域数及其特定颜色信息
  • 依赖于区域中的累积颜色信息,而不是颜色在区域中的排列方式
  • 不需要区域的方向
  • 不需要具有亚像素精度的位置

在检测、识别和分拣应用中使用颜色定位。
图 10 显示了一个糖果分类应用程序。使用图像中不同糖果的颜色模板,颜色位置可以快速定位不同糖果的位置。

图 10.使用颜色位置对糖果进行排序

颜色图案匹配

使用颜色模式匹配在彩色图像中快速定位已知的参考模式或基准点。使用颜色模式匹配,可以创建表示要搜索的对象的模型或模板。然后,您的机器视觉应用程序在每个采集的图像中搜索模型,计算每个匹配项的分数。分数表示模型与找到的颜色图案的匹配程度。使用颜色模式匹配来查找由图案中的颜色和空间信息完全描述的参考图案。

在以下情况下使用颜色模式匹配:

  • 要定位的对象包含与背景非常不同的颜色信息,并且您希望非常精确地查找图像中对象的位置。对于这些应用程序,颜色模式匹配提供了比颜色位置更准确的解决方案,因为它在搜索阶段使用形状信息。

    图 11 显示了颜色位置和颜色模式匹配之间的差异。图11a是算法在检测图像中搜索的电阻的模板图像。虽然颜色位置(如图11b所示)可以找到电阻,但匹配不是很准确,因为它们仅限于颜色信息。颜色模式匹配首先使用颜色匹配来定位对象,然后使用图案匹配来优化位置,从而提供更准确的结果,如图 11c 所示。


图 11.使用颜色模式匹配精确定位电阻器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/680249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

scratch lenet(10): C语言计算log

scratch lenet(10): C语言计算log 文章目录 scratch lenet(10): C语言计算log1. 目的2. 原理: x m ∗ 2 p x m * 2^p xm∗2p3. 公式展开3.1 公式分解3.2 获取 m m m3.3 获取 p p p3.4 Remez 算法Remez 算法用于 sin(x) 的快速计算Remez 算法用于 exp 的近似Remez 用于自然…

【MySQL数据库】存储过程

目录 一、存储过程1.1概述1.2优点 二、存储过程实战2.1创建存储过程2.2存储过程的参数2.3条件语句 if-then-else end if2.4循环语句while end while 一、存储过程 1.1概述 存储过程是一组为了完成特定功能的SQL语句集合。存储过程在使用过程中是将常用或者复杂的工作预先使…

CSS基础学习--25 border(边框)进阶

一、边框常见属性 border-radiusbox-shadowborder-image 属性说明CSSborder-image设置所有边框图像的速记属性。3border-radius一个用于设置所有四个边框- *-半径属性的速记属性3box-shadow附加一个或多个下拉框的阴影3 二、border-radius 圆角 在 CSS2 中添加圆角棘手。我…

网络协议TCP/IP 协议学习笔记一

T C P / I P通常被认 为是一个四层协议系统,每一层负责不同的功能: 1) 链路层,有时也称作数据链路层或网络接口层, 通常包括操作系统中的设备驱动程序和计算机 中对应的网络接口卡。它们一起处理与电缆(或其他任何传输…

CSS基础学习--26 渐变(Gradients)

CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡。以前,你必须使用图像来实现这些效果。但是,通过使用 CSS3 渐变(gradients),你可以减少下载的时间和宽带的使用。此外&…

Linux tracing之基于uprobe/kprobe的调试调优浅析

经过长期的发展, kprobes/uprobes 机制在事件(events)的基础上分别为内核态和用户态提供了追踪调试的功能, 这也构成了 tracepoint 机制的基础, 后期的很多工具, 比如 perf_events, ftrace 等都是在其基础上演化而来. 参考由 Brendan Gregg 提供的资料来看, kprobes/uprobes 在…

Minecraft我的世界服务器搭建之Linux系统,我的世界服务器推荐

Minecraft 是一个流行的沙箱独立游戏,由瑞典程序员 Markus “Notch” Perssion 首先创造,后来由 Mojang 开发并发布。这是一款关于打碎和放置砖块的游戏。首先,人们建造建筑物来抵抗夜晚的怪物,随着游戏的发展,玩家一起…

Spark Stream操作Kafka总结

kafka集群搭建 搭建参考 https://www.toutiao.com/article/6496743889053942286/?log_fromd5d6394cf75d_1687599146327 zk下载位置 国内:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 国外:Apache ZooKeeper kafka位置 国内&#xff…

Kubernetes(k8s)容器编排Pod介绍和使用

目录 1 Pod 特点1.1 网络1.2 存储 2 使用方式2.1 自主式Pod2.2 控制器管理的Pod 3 自主运行Pod3.1 创建资源清单3.1.1 参数描述 3.2 创建Pod3.3 Pod操作3.3.1 查看Pod列表3.3.2 查看描述信息3.3.3 访问pod3.3.4 删除Pod 4 控制器运行Pod4.1 创建资源清单4.2 参数描述4.2.1 Repl…

【IDEA】Directory创建多级目录的正确写法

在resource下创建包的时候,右键resourcenew的时候并没有Package,只有Directory 我们也可以用Directory创建包,但写法与在Package下创建包的写法会不一样 例如: 在directory创建包 我们在去看文件的时候 如果是用( com.dao.m…

【数据结构】树以及堆的讲解

(这里写自定义目录标题) 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、树的概念?二、树的表示方法三、树的实际应用四、二叉树概念以及结构1.概念2.特殊的二叉树3.二叉树的性质4.二叉树的存储…

指针与数组--动态数组(2)[1、长度可变的一维动态数组 2、长度可变的二维动态数组]

目录 一、长度可变的一维动态数组 二、长度可变的二维动态数组 由上篇文章的理论&#xff0c;接下来使用例题来阐述。 一、长度可变的一维动态数组 例题1、编程输入某班学生的某门课成绩&#xff0c;计算并输出平均值。学生人数由键盘输入。 #include <stdio.h> #i…

Apache服务器

文章目录 Apache服务器Linux安装ApacheApache文件结构Apache主配置文件案例 配置一台Web服务器 启动用户的个人网站虚拟主机的设定基于IP的虚拟主机基于域名的虚拟主机基于端口的虚拟主机 rewrite重写rewrite使用详解使用案例 域名跳转单个域名跳转多个域名跳转 status状态页ap…

“插入排序:小数据量排序的王者“

文章目录 &#x1f50d;什么是插入排序&#xff1f;&#x1f511;插入排序的优缺点&#x1f680;实现插入排序 &#x1f50d;什么是插入排序&#xff1f; 插入排序是一种简单的排序算法&#xff0c;它的基本思想是&#xff1a;将待排序的元素&#xff0c;从第二个元素开始&…

阿里架构师整理的Java经典面试题1220道(附答案)

学习如逆水行舟&#xff0c;尤其是 IT 行业有着日新月异的节奏&#xff0c;我们更要抓紧每一次可以学习和进步的机会。所以&#xff0c;没有撤退可言 即使是面试跳槽&#xff0c;那也是一个学习的过程。只有全面的复习&#xff0c;才能让我们更好的充实自己&#xff0c;武装自…

内网隧道代理技术(五)之 Netcat反弹Shell

Netcat反弹Shell Netcat简称NC,是一个简单、可靠的网络工具,被誉为网络界的瑞士军刀。通NC可以进行端口扫描、反弹Shell、端口监听和文件传输等操作,常用参数如下&#xff1a; 参数作用-c指定连接后要执行的shell命令-e指定连接后要执行的文件名-k配置 Socket一直存活(若不想…

一文了解远程桌面连接

一文了解远程桌面连接 一、引言1.1、远程桌面连接的概述1.2、远程桌面连接的应用场景 二、远程桌面连接的基本原理2.1、远程桌面连接的工作方式2.2、远程桌面连接的安全性 三、远程桌面连接的实现方法3.1、Windows自带的远程桌面连接3.2、第三方远程桌面连接工具 四、远程桌面连…

一阶低通滤波器(CODESYS FC和FB应用介绍)

一阶RC低通滤波器详细算法介绍请参看下面文章链接: PLC信号处理系列之一阶低通(RC)滤波器算法_plc计算滤波频率_RXXW_Dor的博客-CSDN博客1、先看看RC滤波的优缺点 优点:采用数字滤波算法来实现动态的RC滤波,则能很好的克服模拟滤波器的缺点; 1、在模拟常数要求较大的场合这…

数据挖掘——甘肃省县(区)域农业综合实力研究(论文)

《数据挖掘与分析》课程论文 题目&#xff1a;甘肃省县&#xff08;区&#xff09;域农业综合实力研究 xx学院xx专业xx班&#xff1a;xx 2023年6月 甘肃省县&#xff08;区&#xff09;域农业综合实力研究 xx (xx学院 xx学院) 摘要&#xff1a;本文主要研究甘肃省各县&#…

C语言数组指针和指针数组

文章目录 1 数组指针和指针数组的区别2 数组首地址和数组首元素地址的区别参考 1 数组指针和指针数组的区别 对指针数组和数组指针的概念&#xff0c;相信很多C程序员都会混淆。下面通过两个简单的语句来分析一下二者之间的区别&#xff0c;示例代码如下所示&#xff1a; int…