首页 > 编程知识 正文

labview汽车仪表盘,仪表盘故障灯

时间:2023-05-04 05:15:42 阅读:8980 作者:3341

目录1,模拟仪表识别

2、LCD/LED显示屏识别

在机器视觉系统中,往往需要从各种仪表的显示图像中提取读数。 这些仪器的显示画面可以分为模拟指针显示画面、LCD显示画面、LED显示画面等。

查看模拟仪表时,刻度标记在由初始值和满刻度值定义的圆弧范围内,仪表指针绕圆弧中心旋转以指示当前值。 因此,如果使用两条标记初始值和满刻度值的线段,加上标记圆的中心位置的点来校正仪表,则容易检测指针的位置,并以该位置占满刻度的比例决定当前的读数。 三点法是校准这类仪表的另一种方法。 通过在仪表的初始值、满刻度值的位置分别选择一点,然后选择指针旋转的圆的中心,圆的中心点与其他两点分别构成线段,实现仪表的校准。

指针型显示器常用于速度计、流量计、电压和电流计等,如下所示。

仪表读取功能还可以从具有LCD/LED显示器的仪表中检测包括单个或多个7段数码管类型的数字的区域,并且读取包括诸如小数点之类的分隔符的数值。

LCD/LED显示器使用七段数码管显示数据,如下所示:

Nl Vision提供了一个读取上述仪表显示的函数,该函数封装了LabVIEW的视觉与运动Machine VisionInstrument Readers函数选板上的复杂算法,如下图所示。

其中,IMAQ Get Meter、IMAQ Get Meter 2、IMAQ ReadMeter用于读取模拟仪表读数,IMAQ Get LCD ROI、imaq读取液晶屏、imaq读取单数字

有关函数的说明和使用,请参阅帮助文档。

1、基于模拟仪表识别NI Vision的仪表读数函数可以快速构建需要读数的机器视觉系统。 以仪表读数函数读取油表示值为例,了解模拟仪表识别的应用。

整个过程分为学习和读取两个阶段。 在学习阶段,程序首先使用两个imaq转换线到ROI函数指定仪表的初始值和满刻度值的位置。 然后,imaq组ROI将两条线段ROI组合起来作为仪表学习函数IMAQ Get Meter的输入。 学习过程完成后,将输出仪表指针的旋转中心位置和数组。 数组元素表示圆弧上每个点沿仪表初始值和满刻度值之间的刻度的位置,这些点用于在读取阶段计算仪表读数。

读取阶段基于学习阶段的输出,imaq读取仪表可以通过检测仪表指针的位置来确定当前读数占满量程的百分比。 根据该百分比和满刻度值,可以计算仪表的实际读数。

编程如下所示。

程序的执行结果除了显示读数外,还显示图像的ROI、学习过程中返回的数组中的各点以及指针所指的位置。 效果如下。

有关项目下载,请参见https://download.csdn.net/download/m0 _ 38106923/20670745

2、LCD/LED显示器可识别IMAQ Get LCDROI、IMAQ Read LCD,检测包含7段数码管类型数字的区域,读取包含小数点等分隔符的数值。 IMAQ Read Single Digit用于读取单个7段数字管道类型的数字。 与读取模拟仪表数值的过程一样,读取液晶屏仪表数值的过程也包括学习和读取两个阶段。

在学习阶段,必须根据所有数字的7段代码管全部打开时的图像(全部为数字8 ),确定每个数字所在的矩形范围。 在读取阶段,通过分析7段数码管数字各段的线灰度分布来确定读取结果。

下图说明了仪表读取函数根据线灰度分布识别LCD/LED代码管显示的原理。 其中,数字是每个段的代码管的索引。

上图(a )显示了背景为白色,7段的代码管全部打开的情况。 其中,数字是每个段的代码管的索引。 假设在学习阶段从图像中确定了各数字存在的矩形的位置,则可以设置在水平方向和垂直方向上与各段的数码管交叉的线段型ROI,用于后续的分析。

数码管关闭时,该图像的灰度和背景

灰度接近,因此线ROI灰度曲线上的像素值分布较为集中。而数码管打开时,因数码段图像灰度与背景反差较大,线ROI灰度曲线上的像素值分布较为分散,如上图(b)所示。

标准差可用来衡量一组数据的分散程度,因此通过计算线ROI上像素灰度的标准差,并为其设置阈值即可判断数码管的开闭。综合考虑7个数码管的各种开闭组合,就能得到其显示的数值。而重复该过程就能读取LCD显示屏中的多个数字。

由于LCD/LED仪表读取函数基于线灰度分布来判断数码管的开闭,因此图像的亮度漂移(Light Drift)、对比度、噪声和分辨率将直接影响其读数的准确性。

通过一个读取LCD仪表显示值的实例,了解LCD/LED显示屏识别的应用方法,程序设计思路如下所示:

程序总体上可分为使用IMAQ Get LCDROI的学习和使用IMAQ Read LCD的读数两大部分。程序开始先读入仪表所有数字均为8时的图像LCD0.jpg,并调用IMAQ Get LCD ROI,从指定的矩形ROI中搜索各个7段数码管数字所在的矩形位置;一旦获得各个数字位置所在的范围,程序就读取待测图像LCD1.jpg,调用IMAQ Read LCD分析各个数字所在的范围内7个数码管的显示情况,以判断最终读数;仪表学习和读取过程均使用线灰度分布的标准差阈值Threshold来判断数码管的开闭,而且IMAQ Read LCD还支持数字的+/-符号和小数点的读取;IMAQ Read LCD以浮点数、字符串以及元素为图形的数组返回所读取到的值,其中字符串中的每个字符用小数点进行分割。

程序实现如下所示:

 程序运行效果如下所示:

 项目下载请参见:https://download.csdn.net/download/m0_38106923/20670937

仪表和条码读取是机器视觉系统的常用功能。常见的各类仪表可按显示方式分为模拟指针显示屏、LCD显示屏和LED显示屏等几大类。

机器视觉系统可以使用双线法或三点法,对模拟显示屏类型的仪表进行校准和读取。对七段数码管类型显示数字的LCD/LED仪表的读取,可以通过分析数字所在区域的线灰度分布来实现。数码管关闭时,灰度曲线上的像素值分布较为集中,反之则分布较为分散。在读取仪表过程中,应考虑图像的亮度漂移、对比度、噪声和分辨率对读数准确性的影响。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。