CN109409290B - 一种温度表检定读数自动识别系统及方法 - Google Patents
一种温度表检定读数自动识别系统及方法 Download PDFInfo
- Publication number
- CN109409290B CN109409290B CN201811259340.0A CN201811259340A CN109409290B CN 109409290 B CN109409290 B CN 109409290B CN 201811259340 A CN201811259340 A CN 201811259340A CN 109409290 B CN109409290 B CN 109409290B
- Authority
- CN
- China
- Prior art keywords
- image
- thermometer
- pixel
- reading
- gray
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000012795 verification Methods 0.000 title claims abstract description 39
- 238000000605 extraction Methods 0.000 claims abstract description 15
- 238000003709 image segmentation Methods 0.000 claims abstract description 15
- 239000007788 liquid Substances 0.000 claims abstract description 13
- QSHDDOUJBYECFT-UHFFFAOYSA-N mercury Chemical compound [Hg] QSHDDOUJBYECFT-UHFFFAOYSA-N 0.000 claims description 44
- 229910052753 mercury Inorganic materials 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 21
- 230000009466 transformation Effects 0.000 claims description 20
- 230000007797 corrosion Effects 0.000 claims description 18
- 238000005260 corrosion Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 16
- 230000011218 segmentation Effects 0.000 claims description 16
- 238000003708 edge detection Methods 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 claims description 13
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 10
- 238000012937 correction Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000003628 erosive effect Effects 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims description 7
- 241000668842 Lepidosaphes gloverii Species 0.000 claims description 6
- 239000003086 colorant Substances 0.000 claims description 2
- 230000001131 transforming effect Effects 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 abstract description 4
- 230000000877 morphologic effect Effects 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000003556 assay Methods 0.000 description 1
- 208000003464 asthenopia Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009529 body temperature measurement Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
- G06V10/242—Aligning, centring, orientation detection or correction of the image by image rotation, e.g. by 90 degrees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
- G06V10/267—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Radiation Pyrometers (AREA)
Abstract
本发明公开了一种温度表检定读数自动识别系统及方法,该系统包括摄像头(1)、计算机(2)、步进电机(3)和温控槽(4);计算机(2)通过导线与摄像头(1)和步进电机(3)相连,计算机(2)中安装有图像采集卡和运动控制卡;步进电机(3)固定在温控槽(4)顶部;温控槽(4)内部有恒温液体环境,用来提供检定点温度,温控槽(4)表面开有温度表读数窗口(5),顶端有孔,内置可独立取出的温度表夹具。该方法包括图像显示与获取、图像格式转换、图像灰度变换、图像分割、图像二值化、图像形态学运算、图像特征提取、读数识别。本发明利用计算机识别软件代替人眼,实现温度表读数的自动化,从而减少人工劳动量和提高读数精度。
Description
技术领域
本发明属于温度表计量与图像处理及识别领域,具体涉及一种温度表检定读数自动识别系统及方法。
背景技术
温度是人们在生产、生活等活动中用到的一个重要的计量参数,作为温度测量的一种重要工具,玻璃液体温度表广泛应用在工业、农业、环境、建筑、能源等诸多重要领域。温度表自身的读数误差将会影响到温度测量的品质,较大的误差可能会引起无法挽回的损失。因此当温度表应用一段时间后需要对其进行检定,以校定其读数误差。
目前温度表检定采用的方法大都比较传统,其工作过程为:按照检定规程,对于达到检定周期需要进行检定的温度表,在通过外观检查后,由专用夹具固定,置于温控槽内的工作室内,操作人员对被检温度表进行人工读数,待一批温度表在某一检定温度点全部读数完毕后,进行下一温度点的读数,最后进行数据处理,并给出温度表的检定证书。由检定过程中可知温度表读数是通过操作人员眼睛观察来实现的,由此可能导致两个方面的问题:一是温度表读数的准确性依赖读数人员的技能水平,温度判读存在一定的主观性;二是当对多支温度表或者多个检定点进行批量检定读数时人工劳动量大,且容易存在视觉疲劳,这些问题均会导致温度表检定读数精度的下降。为此,寻找一种能够对温度表自动读数的方法将会有助于上述问题的解决。
现有技术中已公开发表的关于“温度表自动读数研究”方面的有关文献中,大都借助了图像处理技术来识别温度表读数,其一般过程主要包括彩色图像灰度化、灰度图像二值化、图像特征提取和读数识别。总体来说这些方法操作比较繁琐,流程不够优化;当原始采集的图像成像质量不高时,读数识别效果不佳;有些步骤的操作自动化程度不高,读数识别结果存在一定人为主观因素的影响。
在2002年第6期《计量与测试技术》杂志的《液体温度表自动检定中的图像处理技术》一文和2003年第4期《计量技术》杂志的《液体温度表自动检定中的图像处理技术》一文中,灰度图像二值化时采用了固定阈值,自适应性较差,在确定阈值时人工劳动量大,阈值的选取有时难以取得理想效果;在对温度表灰度图像进行特征提取时采用的投影法未考虑温度表倾斜对最终识别读数的影响,读数精度和可靠性不高。
在2004年第7期《计量技术》杂志的《一种温度表自动检定系统设计与实现》一文中,尽管采用了图像处理与识别技术实现温度表检定的自动读数,但是操作比较繁琐,流程不够优化,在处理过程中存在较多人为主观因素的影响,特征提取时准确度有待提高,比如在温度表灰度图像分割前先进行二值化,然后根据二值化和中值滤波结果再对原灰度图像进行分割,操作比较繁琐;对灰度图像进行二值化时采用的阈值根据经验选取,一方面阈值的选取需经过反复调整和验证,另一方面当图像中目标或背景光线变化时还需要再次对阈值进行选择和实验,可操作性较差;对分割后的温度表图像进行特征提取时是在灰度图像基础上进行的,所用投影法不能独立和难以准确地提取温度表水银柱和刻度线特征,特征提取效果受图像成像质量和噪声影响较大,进而影响到最终识别读数结果,读数可靠性不高。
在2005年第6期《兵工自动化》杂志的《温度计自动检定的图像分割技术》一文中,尽管灰度图像的二值化采用了一种自适应阈值方法,但是计算量较大;温度表二值化图像特征提取是在温度表完全处于垂直的理想状态前提下进行的,而实际上这种理想状态很难保证,如果存在倾斜读数精度将会降低;在特征提取时没有将水银柱和刻度线独立分离,由此将会导致刻度线和水银柱特征提取不准确,进而产生读数可靠性较差的问题。
上述问题在一定程度上影响了所研究方法在温度表实际检定工作中的应用。虽然基于图像处理与识别的自动读数技术在理论上能够提高温度表读数精度和检定的效率,但是由于方法自身的不完善和读数可靠性不高等方面的原因,在温度表读数检定中并未得到推广。
发明内容
针对上述现有技术的不足,本发明的目的在于提供一种温度表检定读数自动识别系统及方法。
为达到上述目的,本发明采用如下技术方案来实现的:
一种温度表检定读数自动识别系统,包括摄像头、计算机、步进电机和温控槽;其中,
计算机通过导线与摄像头和步进电机相连,计算机中安装有图像采集卡和运动控制卡;步进电机固定在温控槽顶部;温控槽内部有恒温液体环境,用来提供检定点温度,温控槽表面开有温度表读数窗口,顶端有孔,内置可独立取出的温度表夹具;通电后,摄像头利用图像采集卡采集图像并显示在计算机上,通过运动控制卡控制步进电机带动温控槽内的温度表夹具旋转,调整温度表在温控槽读数窗口中的位置,使温度表位于读数窗口的中间位置和批量检定中多支温度表逐次进入读数窗口,通过图像处理和识别技术实现温度表检定自动读数。
一种温度表检定读数自动识别方法,该方法上述一种温度表检定读数自动识别系统,包括以下步骤:
1)图像显示与获取,通过计算机控制步进电机和摄像头将温控槽读数窗口中显示的温度表图像显示在计算机上,利用温度表夹具控制系统调整温度表在读数窗口图像中的位置,显示正确后将动态图像保存为彩色静态图像;
2)图像灰度化,将获取到的温度表彩色图像转换为灰度图像;
3)图像旋转校正,先利用边缘检测方法求出温度表在图像中的倾斜角度,再利用反向旋转法对其进行校正,得到温度表垂直显示图像,以消除温度表倾斜对读数识别精度的影响;
4)图像灰度变换,利用灰度拉伸方法增强温度表垂直显示图像中温度表与背景的对比度,以便于温度表图像准确分割;
5)图像分割,将温度表从整幅图像中分割出来;
6)图像二值化,为了方便温度表特征提取,将分割后的灰度图像进行自适应二值化处理;
7)图像特征提取,通过图像腐蚀、膨胀运算以及像素计数方法,分别提取温度表图像中的温度表刻度线和水银柱的特征;
8)图像读数识别,识别检定温度点的长刻度线、相邻刻度线之间距离和水银柱液面高度,根据比例关系和已知条件,得到当前温度表的读数。
本发明进一步的改进在于,步骤2)中,将步骤1)获取到的彩色静态图像转换为容易处理的256色灰度位图图像;灰色位图图像中颜色分量与彩色位图图像中颜色分量对应关系如下:
其中R、G和B分别表示颜色分量,分别对应红色、蓝色和黑色。
本发明进一步的改进在于,步骤3)的具体实现方法如下:
步骤3.1:边缘检测:利用Krisch边缘检测算子得到温度表垂直显示图像中温度表的边缘线,Krisch边缘检测算子如下:
设一像素的3×3邻域,取其边缘的梯度为:
t(i,j)=max{1,max{|5ak-3bk|,k=0,1,…7}} (2)
其中:ak=vk+vk+1+vk+2,bk=vk+3+vk+4+…+vk+7,vk为温度表垂直显示图像中的待处理像素点邻域内的像素灰度值;对温度表垂直显示图像中每个像素点按逆时针顺序进行8个方向上的卷积,选择计算结果最大值作为中心像素的梯度值,对应的方向即为边缘方向;8个方向的模板(T1~T8)为:
步骤3.2:对检测出的温度表左边缘线进行直线拟合,求出温度表倾斜角度,拟合算法如下:
(1)对整幅图像进行扫描找出温度表左边缘上的像素点在图像中的位置,记下每个像素的位置坐标(xi,yi);
(2)假设直线方程为:y=a+kx,根据最小二乘法解出a和k:
其中Hei为图像的高度;
(3)根据斜率计算出直线的倾斜角:θ=tg-1k;
步骤3.3:将边缘检测前的灰度图像反向选择θ角度:首先进行图像坐标变换,其次对新图像像素进行灰度差值,得到旋转校正后的新图像;
步骤3.3.1:坐标变换:对图像平面上的像素进行重新排列以恢复原空间关系,原图像坐标值(x0,y0)与新图像坐标值(xn,yn)之间的变换关系如下:
其中θ为旋转角度,lNW、lNH、lW和lH分别为新图像和原图像的宽度和高度;
步骤3.3.2:灰度差值:对空间变换后的像素赋予相应的灰度值以恢复原位置的灰度值,灰度差值计算如下:
f(x,y)=[f(1,0)-f(0,0)]x+[f(0,1)-(0,0)]y+[f(1,1)+f(0,0)-f(0,1)-f(0,1)]xy+f(0,0)(6)
其中x、y分别为像素坐标。
本发明进一步的改进在于,步骤4)中采用的灰度拉伸变换函数如下:
其中x为变换前的像素值,f(x)为变换后的像素值。
本发明进一步的改进在于,步骤5)具体包括:水平和垂直两个方向上的分割,前者分割左、右边界,后者分割上、下边界,两种分割方法采用像素梯度检测法实现:
步骤5.1:水平分割:水平方向上图像分割算法如下:
(1)找出沿水平方向上像素的灰度值,i0,i1,i2,…,in;
(2)计算出相邻两像素之间的灰度差值,j0,j1,j2,…,jn-1;
(3)用排序法找出灰度差值的最大值;
(4)找出对应的具有最大差值像素点的坐标位置;
(5)根据位置确定温度表的左、右边界;
(6)对边界以外的像素的灰度值直接赋255,将图像中边界以外的区域变为白色区域;
步骤5.2:垂直分割:垂直方向上图像分割算法如下:
(1)找出沿垂直方向上像素的灰度值,i0,i1,i2,…,in;
(2)计算出相邻两像素之间的灰度差值,j0,j1,j2,…,jn-1;
(3)用排序法找出灰度差值的最大值;
(4)找出对应的具有最大差值像素点的坐标位置;
(5)根据位置确定温度表的上边界,下边界默认为图像原始高度;
(6)对上边界以外的像素的灰度值直接赋255,将图像中边界以外的区域变为白色区域。
本发明进一步的改进在于,步骤6)中,通过自适应阈值将分割后的温度表灰度图像变为黑白图像,即图像中的颜色只有两种,一种为黑色,用0表示,另一种为白色,用255表示,黑色部分为待识别目标,白色部分为背景;二值化阈值自适应计算过程如下:
(2)根据阈值TK将图像分割成目标和背景两部分,求出两部分的平均值Ho和HB:
其中H(i,j)为图像上(i,j)点的灰度值,N(i,j)是(i,j)的权重系数,取值为1;
(4)如果TK=TK+1,则结束,否则K←K+1,转向步骤(2);如果图像中像素值小于TK,则直接赋值0反之赋值255。
本发明进一步的改进在于,步骤7)的具体实现方法如下:
步骤7.1:图像腐蚀:首先对二值化的原图像进行水平腐蚀,以得到温度表刻度线图像;其次对二值化的原图像进行垂直腐蚀,以得到温度表水银柱图像;图像腐蚀实现过程为:首先读入原图像中当前点的像素值,并把缓存图像中对应位置的点赋值为成黑色,像素值为0;然后把结构元素“覆盖”在原图像中以当前点为中心的区域上,如果在结构元素中某点为黑色而下面的原图像中对应的点为白色,则把缓存图像中当前点赋成白色,像素值为255,即腐蚀掉;由此原图像中所有点读取一遍,在缓存图像中就得到了原图像的腐蚀结果,最后把缓存图像复制到原图像上并返回;运算中的水平方向的结构元素为{[-1,0],[0,0],[1,0]},垂直方向的结构元素为{[0,-1],[0,0],[0,1]};
步骤7.2:图像膨胀:利用图像膨胀分别还原腐蚀运算前温度表图像刻度线和水银柱的原始长度,以防由腐蚀运算带来的读数识别误差;膨胀运算与腐蚀运算的过程相类似,不同的是首先把缓存图像中的当前点赋成白色,而只要结构元素中某点和原图像中与之对应的点都为黑色,则把缓存图像中当前点赋成黑色,即进行了膨胀;
步骤7.3:刻度线特征提取:利用水平方向上像素计数法提取温度表图像中刻度线的几何特征,将图像中各行所有像素的灰度值相加,得到一个统计量,设该统计量的纵坐标为图像的行,横坐标为每行统计量的幅值;图像的高度为H,宽度为W,x表示图像的行,y表示图像的列,且x=1,2,3,…,H,y=1,2,3,…,W,Sx表示图像中每一行所有像素的灰度值总和,则
步骤7.4:水银柱特征提取:利用垂直方向上像素计数法提取温度表图像中水银柱的几何特征,将图像中各列所有像素的灰度值相加,得到一个统计量,设该统计量的纵坐标为图像的列,横坐标为每列统计量的幅值,则图像中每一列所有像素的灰度值总和Sy通过下式计算:
本发明进一步的改进在于,步骤8)的具体实现方法如下:
(1)利用水平方向上像素计数结果,检测像素值统计量的波峰,确定图像中刻度线的位置;
(2)找出代表温度检定点最长刻度线的位置,并且计算相邻刻度线的距离;
(3)利用垂直方向上像素计数结果,检测像素值统计量的波峰,确定水银柱在图像中的位置;
(4)沿水银柱所在的垂直方向上进行检测,得到水银柱液面高度位置;
(5)根据如下关系计算出温度表的当前读数:
T=T0+Δt×ΔH (12)
其中,T0为检定点的温度,Δt为单位刻度线距离上的温度,ΔH为图像中水银柱液面与检定点长刻度线之间的距离。
本发明具有如下有益的技术效果:
本发明通过利用图像处理和识别技术实现温度表检定读数的自动化,在灰度图像进行处理前对温度表倾斜角度进行检测和校正,以保证温度表的读数识别精度;在灰度图像分割之前通过灰度拉伸变换扩大温度表边界区域的像素差,以保证温度表图像分割的准确性;在对分割后的温度表灰度图像进行二值化时,采用自适应阈值方法,阈值能够随着图像目标和背景的变化而自适应调整,不仅提高了阈值选取的科学性和二值化效果,而且还可缩短二值化处理过程所用的时间,提高了整个读数识别方法的效率;在对温度表二值化图像进行特征提取时应用形态学中的腐蚀和膨胀算法对刻度线和水银柱特征分别提取,避免了由于两者特征之间的交叉而影响读数精度的问题。本发明与传统已有的人工和自动检定方法相比,无论从工作效率上还是从读数精度上都得到了提高,并且能很好地满足温度表检定自动化的需要。
附图说明
图1温度表检定读数自动识别系统及方法流程图。
图2温度表检定读数自动识别系统及方法构建示意图,其中,1为摄像头,2为计算机,3为步进电机,4为温控槽,5为温度表读书窗口。
图3图像捕获示意图。
图4图像灰度化图。
图5边缘检测结果图。
图6倾斜角度计算结果图。
图7旋转校正结果图。
图8灰度拉伸结果图。
图9图像分割结果图。
图10自适应二值化结果图。
图11水平腐蚀结果图。
图12垂直腐蚀结果图。
图13水平膨胀结果图。
图14垂直膨胀结果图。
图15水平方向像素计数结果图。
图16垂直方向像素计数结果图。
图17已知条件输入设定图。
图18读数识别结果图。
具体实施方式
以下结合附图和实施例对本发明做出进一步的说明。
如图1和图2所示,本发明提供的一种温度表检定读数自动识别系统,包括摄像头1、计算机2、步进电机3和温控槽4;其中,计算机2通过导线与摄像头1和步进电机3相连,计算机2中安装有图像采集卡和运动控制卡;步进电机3通过螺钉固定在温控槽4顶部;温控槽4内部有恒温液体环境,用来提供检定点温度,温控槽4表面开有温度表读数窗口5,顶端有孔,内置可独立取出的温度表夹具;通电后,摄像头1利用图像采集卡采集图像并显示在计算机2上,通过运动控制卡控制步进电机带动温控槽4内的温度表夹具旋转,调整温度表在温控槽读数窗口5中的位置,使温度表位于读数窗口的中间位置和批量检定中多支温度表逐次进入读数窗口,通过图像处理和识别技术实现温度表检定自动读数。
如图1所示,本发明提供的一种温度表检定读数自动识别方法,包括以下步骤:
步骤1:图像显示与获取:通过计算机控制步进电机和摄像头将温控槽读数窗口中显示的温度表图像显示在计算机上,确定显示正确后将实时显示的动态图像捕获为静态图像,并在计算机内保存为24位真彩色位图,其尺寸为320×240,如图3所示,将动态图保存为静态图的目的是为图像处理及其识别做准备。
步骤2:图像灰度化:将获取到的温度表24位真彩色位图图像转换为256色灰度位图图像,灰色位图图像中颜色分量与彩色位图图像中颜色分量对应关系如下:
其中R、G和B分别表示颜色分量,分别对应红色、蓝色和黑色。图像转换结果如图4所示,将彩色图转换为灰度图的目的是方便图像处理。
步骤3:图像旋转校正:首先自动检测温度表倾斜角度,其次反向旋转图像,得到温度表垂直显示图像,目的是保证温度表读数识别的精度,如果图像中的温度表存在倾斜,则会导致步骤7不能正确提取温度表刻度线和水银柱位置和长度信息,进而影响步骤8的读数识别精度;
步骤3.1:边缘检测:利用Krisch边缘检测算子得到图像中温度表的边缘线,其实现过程为:对图像像素3×3邻域取其边缘的梯度为:
t(i,j)=max{1,max{|5ak-3bk|,k=0,1,…,7}} (2)
其中:ak=vk+vk+1+vk+2,bk=vk+3+vk+4+…+vk+7,vk为图像中的待处理像素点邻域内的像素灰度值;然后对图像中每个像素点按逆时针顺序进行8个方向上的卷积,选择计算结果最大值作为中心像素的梯度值,对应的方向即为边缘方向;8个方向的模板(T1~T8)为:
边缘检测结果如图5所示。
步骤3.2:对检测出的温度表左侧边缘线进行直线拟合,求出温度表倾斜角度,其实现过程为:
(1)对整幅图像进行扫描找出温度表左边缘上的像素点在图像中的位置,记下每个像素的位置坐标(xi,yi);
(2)根据最小二乘法解出解出温度表边缘所在直线方程y=a+kx中a和k:
其中Hei为图像的高度;
(3)根据斜率计算出直线的倾斜角:θ=tg-1k;经计算温度表倾斜角度为0.1303°,结果如图6所示。
步骤3.3:根据倾斜结果将边缘检测前的灰度图像反向选择θ角度0.1303°,首先进行图像坐标变换,其次对变换后的图像像素进行灰度差值,由此得到一幅经过旋转校正后的新图像以待进一步处理;
步骤3.3.1:坐标变换:对图像平面上的像素进行重新排列以恢复原空间关系,原图像坐标值(x0,y0)与新图像坐标值(xn,yn)之间的变换关系如下:
其中θ为旋转角度,lNW、lNH、lW和lH分别为新图像和原图像的宽度和高度,根据步骤3.2的温度表倾斜检测结果,θ=0.1303°;
步骤3.3.2:灰度差值:对空间变换后的像素赋予相应的灰度值以恢复原位置的灰度值,灰度差值计算如下:
f(x,y)=[f(1,0)-f(0,0)]x+[f(0,1)-(0,0)]y+[f(1,1)+f(0,0)-f(0,1)-f(0,1)]xy+f(0,0) (6)
其中x、y分别为像素坐标;图像旋转校正结果如图7所示。
步骤4:图像灰度变换:对经旋转校正后的图像进行灰度拉伸变换,灰度拉伸变换函数如下:
其中x为变换前的像素值,f(x)为变换后的像素值。
灰度拉伸的目的是扩大温度表边界区域的像素差,为后面步骤5中温度表图像准确分割和步骤6中图像自适应二值化做好准备,图像灰度拉伸结果如图8所示,对比图7和图8可以发现,经过灰度拉伸变化,图像中的目标(温度表)和背景(读数窗口中除温度表的部分)的对比度明显增强,这样有利于温度表从整幅图像中准确分割及其后续处理。
步骤5:图像分割:采用图像灰度梯度检测方法将温度表图像从整个读数窗口中分离出来,包括水平分割和垂直分割,前者分割左、右边界,后者分割上、下边界。
步骤5.1:水平分割:水平方向上图像分割算法如下:
(1)找出沿水平方向上像素的灰度值,i0,i1,i2,…,in;
(2)计算出相邻两像素之间的灰度差值,j0,j1,j2,…,jn-1;
(3)用排序法找出灰度差值的最大值;
(4)找出对应的具有最大差值像素点的坐标位置;
(5)根据位置确定温度表的左、右边界;
(6)对边界以外的像素的灰度值直接赋255,将图像中边界以外的区域变为白色区域。
步骤5.2:垂直分割:垂直方向上图像分割算法如下:
(1)找出沿垂直方向上像素的灰度值,i0,i1,i2,…,in;
(2)计算出相邻两像素之间的灰度差值,j0,j1,j2,…,jn-1;
(3)用排序法找出灰度差值的最大值;
(4)找出对应的具有最大差值像素点的坐标位置;
(5)根据位置确定温度表的上边界,下边界默认为图像原始高度;
(6)对上边界以外的像素的灰度值直接赋255,将图像中边界以外的区域变为白色区域;
最终的温度表图像分割结果如图9所示。
步骤6:图像自适应二值化:通过自适应阈值将分割后的温度表灰度图像变为黑白图像,由此得到目标和背景图像,自适应阈值计算过程如下:
(2)根据阈值TK将图像分割成目标和背景两部分,求出两部分的平均值Ho和HB:
其中H(i,j)为图像上(i,j)点的灰度值,N(i,j)是(i,j)的权重系数,取值为1;
(4)如果TK=TK+1,则结束,否则K←K+1,转向步骤(2);如果图像中像素值小于TK,则直接赋值0(黑色),反之赋值255(白色)。
经过自适应阈值计算的图像二值化结果如图10所示,由图可以看出温度表变成了基本上只有水银柱和刻度线的黑白图像。
步骤7:图像特征提取:通过图像腐蚀、膨胀以及像素计数方法对温度表图像中的刻度线和水银柱分别进行特征提取,为后面步骤8中的温度表读数识别做好准备。
步骤7.1:图像腐蚀:通过水平方向和垂直方向腐蚀运算得到温度表二值图像中刻度线和水银柱的图像;首先读入原图像中当前点的像素值,并把缓存图像中对应位置的点赋值为成黑色(像素值为0);然后把结构元素“覆盖”在原图像中以当前点为中心的区域上,如果在结构元素中某点为黑色而下面的原图像中对应的点为白色,则把缓存图像中当前点赋成白色(像素值为255),即腐蚀掉;由此原图像中所有点读取一遍,在缓存图像中就得到了原图像的腐蚀结果,最后把缓存图像复制到原图像上并返回;运算中的水平方向的结构元素为{[-1,0],[0,0],[1,0]},垂直方向的结构元素为{[0,-1],[0,0],[0,1]}。
经过水平方向和垂直方向腐蚀运算后的图像如图11和图12所示。
步骤7.2:图像膨胀:通过膨胀运算分别还原腐蚀运算前温度表图像刻度线和水银柱的原始长度,以防由腐蚀运算带来的读数识别误差;膨胀运算与腐蚀运算的过程相类似,不同的是首先把缓存图像中的当前点赋成白色,而只要结构元素中某点和原图像中与之对应的点都为黑色,则把缓存图像中当前点赋成黑色,即完成图像膨胀。
分别对腐蚀过的温度表刻度线和水银柱图像进行膨胀运算的结果如图13和图14所示。
图像腐蚀和膨胀的目的是为了能够准确提取出步骤7.3中温度表刻度线和步骤7.4中水银柱的位置和长度特征,进而保证步骤8中最终的读数识别精度。
步骤7.3:刻度线特征提取:利用水平方向上像素计数法提取温度表图像中刻度线的几何特征,将图像中各行所有像素的灰度值相加,得到一个统计量,设该统计量的纵坐标为图像的行,横坐标为每行统计量的幅值;图像的高度为H,宽度为W,x表示图像的行,y表示图像的列,且x=1,2,3,…,H,y=1,2,3,…,W,Sx表示图像中每一行所有像素的灰度值总和,则
步骤7.4:水银柱特征提取:利用垂直方向上像素计数法提取温度表图像中水银柱的几何特征,将图像中各列所有像素的灰度值相加,得到一个统计量,设该统计量的纵坐标为图像的列,横坐标为每列统计量的幅值,则图像中每一列所有像素的灰度值总和Sy可通过下式计算:
水平方向和垂直方向上像素计数结果如图15和图16所示。
步骤8:图像读数识别:根据前面步骤7对温度表图像中刻度线和水银柱的几何特征分别进行识别,通过识别和计算刻度线的位置、相邻刻度线之间的距离、水银柱的位置和长度以及水银柱顶端相对检定温度点最长刻度线的距离,其实别过程为:
(1)利用水平方向上像素计数结果,检测像素值统计量的波峰,确定图像中刻度线的位置;
(2)找出代表温度检定点最长刻度线的位置,并且计算相邻刻度线的距离;
(3)利用垂直方向上像素计数结果,检测像素值统计量的波峰,确定水银柱在图像中的位置;
(4)沿水银柱所在的垂直方向上进行检测,得到水银柱液面高度位置;
(5)根据如下关系计算出温度表的当前读数:
T=T0+Δt×ΔH (12)
其中,T0为检定点的温度,Δt为单位刻度线距离上的温度,ΔH为图像中水银柱液面与检定点长刻度线之间的距离。
根据上述过程,确定待识别图像中温度检定点对应的最长刻度线的位置位于图像第138行,与之最近的刻度线位置位于图像第144行,两者之间的距离为7行像素,水银柱的位置位于图像第173列,水银柱高度为130行像素,水银柱液面与检定点长刻度线之间的距离为29行像素;假设最小分度数为2℃,可得到单位刻度线距离上的温度Δt=0.2857℃/行像素,根据公式(12)并结合事先已知的检定点温度(20℃),最后可得到温度表图像的精确读数为28.2857℃,已知条件输入设定和识别结果现实分别如图17和18所示。
步骤9:识别结束:读数识别确定后通过计算机控制步进电机带动温度表夹具使下一支温度表进入读数窗口,进入新的图像处理与识别流程,即重复步骤1~8。
Claims (6)
1.一种温度表检定读数自动识别方法,其特征在于,该方法基于一种温度表检定读数自动识别系统,包括摄像头(1)、计算机(2)、步进电机(3)和温控槽(4);其中,计算机(2)通过导线与摄像头(1)和步进电机(3)相连,计算机(2)中安装有图像采集卡和运动控制卡;步进电机(3)固定在温控槽(4)顶部;温控槽(4)内部有恒温液体环境,用来提供检定点温度,温控槽(4)表面开有温度表读数窗口(5),顶端有孔,内置可独立取出的温度表夹具;通电后,摄像头(1)利用图像采集卡采集图像并显示在计算机(2)上,通过运动控制卡控制步进电机带动温控槽(4)内的温度表夹具旋转,调整温度表在温控槽读数窗口(5)中的位置,使温度表位于读数窗口的中间位置和批量检定中多支温度表逐次进入读数窗口,通过图像处理和识别技术实现温度表检定自动读数;
该方法包括以下步骤:
1)图像显示与获取,通过计算机控制步进电机和摄像头将温控槽读数窗口中显示的温度表图像显示在计算机上,利用温度表夹具控制系统调整温度表在读数窗口图像中的位置,显示正确后将动态图像保存为彩色静态图像;
2)图像灰度化,将获取到的温度表彩色图像转换为灰度图像;将步骤1)获取到的彩色静态图像转换为容易处理的256色灰度位图图像;灰色位图图像中颜色分量与彩色位图图像中颜色分量对应关系如下:
其中R、G和B分别表示颜色分量,分别对应红色、绿色和蓝色;
3)图像旋转校正,先利用边缘检测方法求出温度表在图像中的倾斜角度,再利用反向旋转法对其进行校正,得到温度表垂直显示图像,以消除温度表倾斜对读数识别精度的影响;具体实现方法如下:
步骤3.1:边缘检测:利用Krisch边缘检测算子得到温度表垂直显示图像中温度表的边缘线,Krisch边缘检测算子如下:
设一像素的3×3邻域,取其边缘的梯度为:
t(i,j)=max{1,max{|5ak-3bk|,k=0,1,…7}} (2)
其中:ak=vk+vk+1+vk+2,bk=vk+3+vk+4+…+vk+7,vk为温度表垂直显示图像中的待处理像素点邻域内的像素灰度值;对温度表垂直显示图像中每个像素点按逆时针顺序进行8个方向上的卷积,选择计算结果最大值作为中心像素的梯度值,对应的方向即为边缘方向;8个方向的模板T1~T8为:
步骤3.2:对检测出的温度表左边缘线进行直线拟合,求出温度表倾斜角度,拟合算法如下:
(1)对整幅图像进行扫描找出温度表左边缘上的像素点在图像中的位置,记下每个像素的位置坐标(xi,yi);
(2)假设直线方程为:y=a+kx,根据最小二乘法解出a和k:
其中Hei为图像的高度;
(3)根据斜率计算出直线的倾斜角:θ=tg-1k;
步骤3.3:将边缘检测前的灰度图像反向选择θ角度:首先进行图像坐标变换,其次对新图像像素进行灰度差值,得到旋转校正后的新图像;
步骤3.3.1:坐标变换:对图像平面上的像素进行重新排列以恢复原空间关系,原图像坐标值(x0,y0)与新图像坐标值(xn,yn)之间的变换关系如下:
其中θ为旋转角度,lNW、lNH、lW和lH分别为新图像和原图像的宽度和高度;
步骤3.3.2:灰度差值:对空间变换后的像素赋予相应的灰度值以恢复原位置的灰度值,灰度差值计算如下:
f(x,y)=[f(1,0)-f(0,0)]x+[f(0,1)-(0,0)]y+[f(1,1)+f(0,0)-f(0,1)-f(1,0)]xy+f(0,0) (6)
其中x、y分别为像素坐标;
4)图像灰度变换,利用灰度拉伸方法增强温度表垂直显示图像中温度表与背景的对比度,以便于温度表图像准确分割;
5)图像分割,将温度表从整幅图像中分割出来;
6)图像二值化,为了方便温度表特征提取,将分割后的灰度图像进行自适应二值化处理;
7)图像特征提取,通过图像腐蚀、膨胀运算以及像素计数方法,分别提取温度表图像中的温度表刻度线和水银柱的特征;
8)图像读数识别,识别检定温度点的长刻度线、相邻刻度线之间距离和水银柱液面高度,根据比例关系和已知条件,得到当前温度表的读数。
3.根据权利要求2所述的一种温度表检定读数自动识别方法,其特征在于,步骤5)具体包括:水平和垂直两个方向上的分割,前者分割左、右边界,后者分割上、下边界,两种分割方法采用像素梯度检测法实现:
步骤5.1:水平分割:水平方向上图像分割算法如下:
(1)找出沿水平方向上像素的灰度值,i0,i1,i2,…,in;
(2)计算出相邻两像素之间的灰度差值,j0,j1,j2,…,jn-1;
(3)用排序法找出灰度差值的最大值;
(4)找出对应的具有最大差值像素点的坐标位置;
(5)根据位置确定温度表的左、右边界;
(6)对边界以外的像素的灰度值直接赋255,将图像中边界以外的区域变为白色区域;
步骤5.2:垂直分割:垂直方向上图像分割算法如下:
(1)找出沿垂直方向上像素的灰度值,i0,i1,i2,…,in;
(2)计算出相邻两像素之间的灰度差值,j0,j1,j2,…,jn-1;
(3)用排序法找出灰度差值的最大值;
(4)找出对应的具有最大差值像素点的坐标位置;
(5)根据位置确定温度表的上边界,下边界默认为图像原始高度;
(6)对上边界以外的像素的灰度值直接赋255,将图像中边界以外的区域变为白色区域。
4.根据权利要求3所述的一种温度表检定读数自动识别方法,其特征在于,步骤6)中,通过自适应阈值将分割后的温度表灰度图像变为黑白图像,即图像中的颜色只有两种,一种为黑色,用0表示,另一种为白色,用255表示,黑色部分为待识别目标,白色部分为背景;二值化阈值自适应计算过程如下:
(2)根据阈值TK将图像分割成目标和背景两部分,求出两部分的平均值Ho和HB:
其中h(i,j)为图像上(i,j)点的灰度值,N(i,j)是(i,j)的权重系数,取值为1;
(4)如果TK=TK+1,则结束,否则K←K+1,转向步骤(2);如果图像中像素值小于TK,则直接赋值0反之赋值255。
5.根据权利要求4所述的一种温度表检定读数自动识别方法,其特征在于,步骤7)的具体实现方法如下:
步骤7.1:图像腐蚀:首先对二值化的原图像进行水平腐蚀,以得到温度表刻度线图像;其次对二值化的原图像进行垂直腐蚀,以得到温度表水银柱图像;图像腐蚀实现过程为:首先读入原图像中当前点的像素值,并把缓存图像中对应位置的点赋值为成黑色,像素值为0;然后把结构元素“覆盖”在原图像中以当前点为中心的区域上,如果在结构元素中某点为黑色而下面的原图像中对应的点为白色,则把缓存图像中当前点赋成白色,像素值为255,即腐蚀掉;由此原图像中所有点读取一遍,在缓存图像中就得到了原图像的腐蚀结果,最后把缓存图像复制到原图像上并返回;运算中的水平方向的结构元素为{[-1,0],[0,0],[1,0]},垂直方向的结构元素为{[0,-1],[0,0],[0,1]};
步骤7.2:图像膨胀:利用图像膨胀分别还原腐蚀运算前温度表图像刻度线和水银柱的原始长度,以防由腐蚀运算带来的读数识别误差;膨胀运算与腐蚀运算的过程相类似,不同的是首先把缓存图像中的当前点赋成白色,而只要结构元素中某点和原图像中与之对应的点都为黑色,则把缓存图像中当前点赋成黑色,即进行了膨胀;
步骤7.3:刻度线特征提取:利用水平方向上像素计数法提取温度表图像中刻度线的几何特征,将图像中各行所有像素的灰度值相加,得到一个统计量,设该统计量的纵坐标为图像的行,横坐标为每行统计量的幅值;图像的高度为H,宽度为W,x表示图像的行,y表示图像的列,且x=1,2,3,…,H,y=1,2,3,…,W,Sx表示图像中每一行所有像素的灰度值总和,则
步骤7.4:水银柱特征提取:利用垂直方向上像素计数法提取温度表图像中水银柱的几何特征,将图像中各列所有像素的灰度值相加,得到一个统计量,设该统计量的纵坐标为图像的列,横坐标为每列统计量的幅值,则图像中每一列所有像素的灰度值总和Sy通过下式计算:
6.根据权利要求5所述的一种温度表检定读数自动识别方法,其特征在于,步骤8)的具体实现方法如下:
(1)利用水平方向上像素计数结果,检测像素值统计量的波峰,确定图像中刻度线的位置;
(2)找出代表温度检定点最长刻度线的位置,并且计算相邻刻度线的距离;
(3)利用垂直方向上像素计数结果,检测像素值统计量的波峰,确定水银柱在图像中的位置;
(4)沿水银柱所在的垂直方向上进行检测,得到水银柱液面高度位置;
(5)根据如下关系计算出温度表的当前读数:
T=T0+Δt×ΔH (12)
其中,T0为检定点的温度,Δt为单位刻度线距离上的温度,ΔH为图像中水银柱液面与检定点长刻度线之间的距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811259340.0A CN109409290B (zh) | 2018-10-26 | 2018-10-26 | 一种温度表检定读数自动识别系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811259340.0A CN109409290B (zh) | 2018-10-26 | 2018-10-26 | 一种温度表检定读数自动识别系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109409290A CN109409290A (zh) | 2019-03-01 |
CN109409290B true CN109409290B (zh) | 2022-02-11 |
Family
ID=65469304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811259340.0A Active CN109409290B (zh) | 2018-10-26 | 2018-10-26 | 一种温度表检定读数自动识别系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109409290B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245647B (zh) * | 2019-06-28 | 2021-11-12 | 中国计量大学 | 一种玻璃液体温度计自动定位与读数的方法 |
CN110796139B (zh) * | 2019-10-17 | 2023-06-23 | 中国测试技术研究院辐射研究所 | 测试/检测/校准/检定中指示值图案定位和分割方法 |
CN111899271B (zh) * | 2019-12-16 | 2022-04-05 | 西北工业大学 | 一种图像分割和超声波探伤仪的自动检定的方法及系统 |
CN112036409A (zh) * | 2020-08-13 | 2020-12-04 | 浙江大华技术股份有限公司 | 一种液位计的读数识别方法及装置 |
CN112289154A (zh) * | 2020-10-20 | 2021-01-29 | 武汉大学 | 一种用于牛顿环实验的机器视觉教学系统及方法 |
CN113379725A (zh) * | 2021-06-29 | 2021-09-10 | 广州高新兴机器人有限公司 | 一种基于深度学习的变电站油计表读数方法 |
CN114998887B (zh) * | 2022-08-08 | 2022-10-11 | 山东精惠计量检测有限公司 | 一种电能计量表智能识别方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789080A (zh) * | 2010-01-21 | 2010-07-28 | 上海交通大学 | 车辆车牌实时定位字符分割的检测方法 |
CN104316220A (zh) * | 2014-10-15 | 2015-01-28 | 聊城大学 | 一种基于机器视觉的水银体温计自动检定方法 |
CN104880263A (zh) * | 2015-05-23 | 2015-09-02 | 佛山市质量计量监督检测中心 | 基于图像识别与无线监控的玻璃温度计检定装置 |
CN105809169A (zh) * | 2015-12-23 | 2016-07-27 | 佛山市质量计量监督检测中心 | 标准恒温槽的玻璃温度计检定识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2528044B (en) * | 2014-07-04 | 2018-08-22 | Arc Devices Ni Ltd | Non-touch optical detection of vital signs |
-
2018
- 2018-10-26 CN CN201811259340.0A patent/CN109409290B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789080A (zh) * | 2010-01-21 | 2010-07-28 | 上海交通大学 | 车辆车牌实时定位字符分割的检测方法 |
CN104316220A (zh) * | 2014-10-15 | 2015-01-28 | 聊城大学 | 一种基于机器视觉的水银体温计自动检定方法 |
CN104880263A (zh) * | 2015-05-23 | 2015-09-02 | 佛山市质量计量监督检测中心 | 基于图像识别与无线监控的玻璃温度计检定装置 |
CN105809169A (zh) * | 2015-12-23 | 2016-07-27 | 佛山市质量计量监督检测中心 | 标准恒温槽的玻璃温度计检定识别方法 |
Non-Patent Citations (1)
Title |
---|
一种温度表自动检定系统设计与实现;高运广 等.;《仪器仪表标准化与计量》;20030531;第44-46页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109409290A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109409290B (zh) | 一种温度表检定读数自动识别系统及方法 | |
CN108921176B (zh) | 一种基于机器视觉的指针式仪表定位与识别方法 | |
CN108764229B (zh) | 一种基于计算机视觉技术的水尺图像自动识别方法 | |
CN109443480B (zh) | 基于图像处理的水位标尺定位及水位测量方法 | |
CN112818988B (zh) | 一种指针式仪表自动识别读数方法及系统 | |
CN110084241B (zh) | 一种基于图像识别的电表自动读数方法 | |
CN102521560B (zh) | 高鲁棒仪表指针图像识别方法 | |
CN103345755B (zh) | 一种基于Harris算子的棋盘格角点亚像素提取方法 | |
CN108960237B (zh) | 一种指针式油位计读数识别方法 | |
CN112651968B (zh) | 一种基于深度信息的木板形变与凹坑检测方法 | |
CN110929710B (zh) | 一种基于视觉的仪表指针读数自动识别方法与系统 | |
CN108846397B (zh) | 一种基于图像处理的电缆半导电层自动检测方法 | |
CN109426814B (zh) | 一种发票图片特定板块的定位、识别方法、系统、设备 | |
CN109540925B (zh) | 基于差影法与局部方差测量算子的复杂瓷砖表面缺陷检测方法 | |
CN109284718B (zh) | 面向巡检机器人的变视角多仪表同时识别方法 | |
CN116645367B (zh) | 一种高端制造用的钢板切割质量检测方法 | |
CN112613429A (zh) | 一种基于机器视觉适用于多视角图像指针式仪表读数方法 | |
CN111354047B (zh) | 一种基于计算机视觉的摄像模组定位方法及系统 | |
CN115170669A (zh) | 基于边缘特征点集配准的识别定位方法及系统、存储介质 | |
CN106952262B (zh) | 一种基于立体视觉的船板加工精度分析方法 | |
CN115014248B (zh) | 一种激光投射线的识别与平面度判定方法 | |
CN112801094A (zh) | 一种指针式仪表图像倾斜校正方法 | |
CN113643276A (zh) | 一种基于统计分析的纺织物纹理缺陷自动检测方法 | |
CN104614386A (zh) | 一种镜片疵病类型的识别方法 | |
CN113989482B (zh) | 一种基于图像处理的光学合像水平仪自动读数识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |