指针式仪表表盘的缺陷检测. 下载本文

内容发布更新时间 : 2024/10/19 19:23:37星期一 下面是文章的全部内容请认真阅读。

指针式仪表表盘的缺陷检测

关键词:像素密度;骨架;字符;八邻域 1引言

刻度式仪器仪表可反映各种工业系统的大量动态运行参数,在现今的工业现场中被广泛使用,而且仍将长期存在。利用计算机技术代替人工检测,可以避免视觉疲劳,达到准确、快速检测的目的。刻度式仪表, 在统一的计算机硬件平台下,可以构造成一个高效准确的工业刻 度式仪表的检测系统。传统的表盘检测只是通过待检图像与原图像进行对比,误差性较大。本课题检测仪表的相关指标包括:表盘刻度的均匀度,刻度线是否笔直,指针与刻度线的重合度等。本课题采用先进的图像处理算法,完成对仪表缺陷的检测,相比传统方法更加准确并且有较好的开创性。系统通过运用VC 这一编程工具,采用阈值处理,边缘检测,数学形态学和小波分析理论等实现图像预处理,并把模糊理论引入到特征提取中有效的检测到目标参数从而达到预期效果。 2仪表盘检测流程

图像目标区域的定位与分割是图像识别检测工作的基础,其一般过程是先定位好目标 区域,再对目标区域进行分割。但本文首先检测图像中的字符,然后再检测表盘中的刻度线。在字符检测中采用了一种新的思路[1],在定位操作的同时调用了某些分割的功能函数, 所以本仪表盘参数符号的特征,只要区别识别出字符与刻度既可。而不需要把字符完全的识别出 来,在识别出非刻度线后映射在方格中,即可以得出字符是否有缺陷。检测流程如图1所示。 3表盘字符的检测

直读指针式仪表表盘由指针、读数区刻度线、英文字母、数字和各种参数符号等元素组成。其中仪表的准确度等级(用小数表示)和各种参数符号是仪表读数和仪表校验的关键指标。因此对它们的准确识别是仪表自动读数识别和自动校验的重要因素。本文就是从已经去 除了指针和读数区刻度线的表盘图像出发,在各类表盘字符中定位并分割出仪表的准确度等级参数和各种主要参数符号。 3.1字符图像特征的选取

字符的基本特征[2]包括字宽、字高、字间隙等,用这些特征进行字符的分割。本文根据仪表盘参数字符的特点,选取了字符的像素密度特征、连通域特征进行分析。下面对这两个特征做一个简单描述。

字符的像素密度特征A[i]:在图像白色背景下,认为被识别的字符为黑色的像素颗粒,一个字符的黑像素个数CNum[i]与该字符外切矩形面积S[i]之比为: A[i]=CNum[i]/S[i]。

字符的连通域特征:这里指一行分割单元的中黑色像素的数量、位置等特性。 3.2字符的分割

3.2.1设置控制变量m1和m2,其类型都为整型。从左到右扫描,查看每一列是否有黑像素。如果有则m1 ;m2=0,如果没有则m1=0;m2 。若m1=1,说明是第一次扫描到黑色[3]。

3.2.2边或经过白色边后再扫描到黑色边,同理,若m2=1,说明是第一次扫描到白色边或经过黑色边后再扫描到白色边, 这两种情况都可以用BNum[]数组保存下来。为了记录最右的那条边(有黑色点),故加i==wide-1这种情形。 if(m1==1||i==wide-1) {BNum[k]=i; k ; }

if(m2==1) {BNum[k]=i; K ; }

///i是边的位置

对于m1≥1的情况,可用CNum[]数组记录所有连续的黑像素的个数[4],以所记录下来最边界的黑像素的坐标为框算出其面积S[i],然后A[i]=CNum[i]/S[i]算出字符密度。根据实验,当密度A[i]>9/16时,可认定为字符。因为在指针式表盘中,只有刻度线与字符,而密度大于9/16的只可能是字符。 3.3字符分割后通过骨架提取算法

提取出数字骨架,把他映射在8*8的0/1矩阵,矩阵中值为1的点表示数字骨架经过的矩阵中的点,0表示数字的背景。对于表盘中数字来检测来说,取8*8的矩阵足够了。如图2所 示。

扫描以上的图片中,可以得出数字4有断笔,提示出字符缺陷: for(i=0;i {

for(j=height;j>=0;j--) {

unsigned char temp; temp= *(p_data j*wide i); //temp=p_data[j*wide i]; if(temp==0) { j--;

if(temp==255) AfxMessageBox(“字符有缺陷”); } }

4刻度线和指针的检测

表盘中的刻度和指针缺陷一般有:指针顶点的偏离、刻度线的不均匀、刻度线线弯曲等。在检测刻度线的过程中为了避免漏检运用到八邻域算法,此算法以一个像素为基点进而选取周围八个点进行检测。 4.1八邻域法的介绍

在二值图像 f 中,相互联结的黑像素的集合成为一个(黑)区域。本程序通过对图像 f 内每个区域进行标记操作(标号),求得区域的数目。由于处理前的f是二值的,像素要么为0(黑),要么为255(白),所以处理后每个像素的值即为其所处理区域的区域标号(1,2,3,…)。连接性c(=4或=8)由用户决定。本程序根据前面介绍的方法,进行物体标识。采用8连通判别算法[5],如图3(物体标识图)所示,图中 A、B、C三个不连通的物体。对这三个不连通的物体。对这三个物体的标识过程如下:

(1)从左到右,从上到下逐个像素扫描。

(2)若访点的左上、正上、右上及左前点共4个点的像素值都不为物体,则把数标加1,且这些数组值为 1。

(3)采用(行坐标、列坐标)方式标记物体。