LabVIEW 图像处理功能

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

内容

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

图像分析

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

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

直方图

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

您可以通过查看直方图来检测传感器是否曝光不足或饱和。曝光不足的图像包含大量灰度值较低的像素,如图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.使用颜色模式匹配精确定位电阻器

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java单例模式

Java单例模式 1、概念2、代码实现方案饿汉式实现:懒汉式实现:饿汉式PK懒汉式: 3、单例模式的特点及适用场景优点:缺点:适用场景: 4、关于单例模式的常见问题4.1 public static SingletonOne getlnstance(){}A.该方法为什么用静态的…

python爬虫快速入门

Python有其简洁明了,功能强大的优势,特别是在网络爬虫的应用上。接下来,我将分享一个适合Python初学者的爬虫快速入门教程。 一、Python爬虫简介 网页爬虫,是一种自动从互联网上获取信息的程序。在Python语言中,requ…

【Qt】程序异常结束。The process was ended forcefully.(解决方法不一样哦)

环境 系统:win10 64bit Qt:5.14.1 编译器:MinGW 32-bit 问题 Qt工程编译正常,但无法调试,报错:程序异常结束。The process was ended forcefully. 步骤 已尝试网上方法仍然不行的,可以直接…

Visual studio 快捷键(个人记录加深印象)

1、CtrlK 后 Ctrlx 插入代码片段快捷键(或 编辑”>“IntelliSense”>“插入代码片段) 注(摘抄):该列表包含用于创建类、构造函数、for 循环、if 或 switch 语句等的代码片段

硬件学习件Cadence day12 PCB设计中打地孔与地孔设计,PCB 后期处理,钻孔文件导出

1. 制作 过地孔的焊盘 (两种方法)(又叫制作盲埋孔) 1.1 制作热风焊盘 (之前的教程有,现在只给数据) 1.2 第一种 allegro 外部 焊盘软件制作 1.2.1 打开软件 1.2.2 制作焊盘,查看…

Layout-静态模板结构搭建、字体图标引入、一级导航渲染、吸顶导航交互实现、Pinia优化重复请求【小兔鲜Vue3】

Layout-静态模板结构搭建 Layout模块静态模板搭建 LayoutNav.vue <script setup></script><template><nav class"app-topnav"><div class"container"><ul><template v-if"true"><li><a h…

【SQL应知应会】分析函数的点点滴滴(二)

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习&#xff0c;有基础也有进阶&#xff0c;有MySQL也有Oracle 分析函数的点点滴滴 1.什么是分析函数&#xff1a;…

图书推荐管理系统Python,基于Django和协同过滤算法等实现

一、介绍 图书推荐系统 / 图书管理系统&#xff0c;以Python作为开发语言&#xff0c;基于Django实现&#xff0c;使用协同过滤算法实现对登录用户的图书推荐。 二、效果展示 三、演示视频 视频代码&#xff1a;https://www.yuque.com/ziwu/yygu3z/gq555ph49m9fvrze 四、Dj…

http长连接与会话保持

"我们半推半就的人生&#xff0c;没有和你一样被眷顾的未来!" 一、Http长连接 (1) 为什么需要长连接 如上展示的是一个常规得并不能再常规的http服务&#xff0c;从本地拉取远端linux上的本地文件上传至浏览器上&#xff0c;经过浏览器的渲染展示成如今的样子。唔&a…

数学建模——曲线拟合

一、曲线拟合简介 1、曲线拟合问题的提法 已知一组数据&#xff08;二维&#xff09;&#xff0c;即平面上n个点 (xi,yi)(i1,2,…,n)&#xff0c; xi互不相同。寻求一个函数yf(x)&#xff0c;使得f(x)在某种准则下与所有的数据点最为接近&#xff0c;即拟合得最好。 2、…

Java Stream 流进行根据元素某一属性过滤计算其他属性实例

设计一个测试类Tuser package org.example;import com.alibaba.fastjson.annotation.JSONField;import java.io.Serializable;public class Tuser implements Serializable {//用户名private String name;//平台名称private String sys;//登录次数private int times;//一个合并…

H5学习期间 问题文档(更新中)

目录 一、html与css中让标签 二、css鼠标滑入显示div 三、git报错解决方案 四、ul>li中给h1标签设置行高 一、html与css中让标签<li>在同一行显示 li标签一行显示 效果展示&#xff1a; 代码块&#xff1a; <!DOCTYPE html> <html lang"en"…

python 深度学习 解决遇到的报错问题2

目录 一、解决报错UnicodeDecodeError: utf-8 codec cant decode byte 0xe3 in position 15: invalid continuation byte 二、解决ERROR: Could not build wheels for pycocotools, which is required to install pyproject.toml-based pro 三、解决OSError: [WinError 1314…

Redhat7.6安装mysql5.7

环境准备&#xff1a;硬盘剩余空间最少8G,内存剩余最少2G Mysql官网下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/5.7.html 在Mysql官网下载列表中选择需要安装的版本: RedHat7.6安装MySQL5.7 安装之前&#xff0c;先要保证系统环境是干净的&#xff0c;不能存…

Mysql锁机制介绍

Mysql锁机制 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中&#xff0c;除传统的计算资源(如CPU、RAM、I/O等)的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题&#xff0…

docker部署rabbitmq

拉取镜像 我部署的是3.8版本的 docker pull rabbitmq:3.8 启动容器 docker run -d --hostname my-rabbit --name rabbitmq --restart always -e RABBITMQ_DEFAULT_USERadmin -e RABBITMQ_DEFAULT_PASSadmin -p 15672:15672 -p 5672:5672 --privilegedtrue rabbitmq:3.8 启…

【Verilog HDL】FPGA-testbench基础知识

&#x1f389;欢迎来到FPGA专栏~testbench基础知识 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能…

【网络原理之一】应用层协议、传输层协议UDP和TCP,TCP的三次握手和四次挥手以及TCP的可靠和效率机制

应用层协议XML协议JSONHTTP 传输层协议UDP协议UDP的特点UDP协议格式 TCP协议TCP的特点TCP协议格式TCP的安全和效率机制确认应答(可靠机制)超时重传(可靠机制)连接管理(可靠机制)三次握手(连接过程)四次挥手(断开的过程)状态的转化 滑动窗口(效率机制)流量控制(可靠机制)拥塞控制…

【码银送书第一期】通用人工智能:初心与未来

目录 前言 正文 内容简介 作者简介 译者简介 目录 前言 自20世纪50年代图灵在其划时代论文《计算机器与智能》中提出“图灵测试”以及之后的达特茅斯研讨会开始&#xff0c;用机器来模仿人类学习及其他方面的智能&#xff0c;即实现“人工智能”&#xff08;Artificial …

最优化问题matlab求解-fminsearch()和fmincon()函数的使用

matlab可以求解无约束最优化问题、有约束最优化问题和线性规划、二次型规划问题等&#xff0c;同时实现了最小二乘法的曲线拟合方法。matlab求解优化问题的步骤为&#xff1a; 写标准型描述目标函数&#xff1a;M-函数或匿名函数用fminunc()或fmincon()等函数求解原问题。检验…