本发明涉及仪器仪表自动监测系统术领域,尤其涉及一种多表盘指针式仪表的自动读数方法。
背景技术:
指针式仪表由于结构简单、使用方便和易维护的特点,在各个工业领域有着广泛的应用。但是,指针式仪表需要人工进行现场的数值读取,但人工读数工作量大、效率低、误差高、读数精度易受工作环境等一些列不确定因素,已不能满足现代工业生产的需求。针对指针式仪表的自动读数问题,国内外的研究人员曾提出过包括中心投影法、减影法、模板特征法、最小二乘法等在内的一系列算法进行研究,其中中心投影法、减影法和模板特征法受图像拍摄环境的影响较大,鲁棒性能差,而最小二乘法计算量大,误差高,无法适用于实时读数的场合,另外,上述方法都只能对指针式仪表中的单个表盘进行读数,在读书过程中需要进行大量图像采集和存储工作,不仅效率低,而且需要投入大量人力物力。
技术实现要素:
本发明的目的是提供一种多表盘指针式仪表的自动读数方法,能够同时对具有多个表盘的指针式仪表进行自动读数,打破一张图像只能识别单个仪表的限制,节约图像的采集时间和存储空间,从而提高图像识别的效率。
本发明采用的技术方案为:
一种多表盘指针式仪表的自动读数方法,包括以下步骤:
a、建立指针式仪表所包括的n个表盘的基准图像fbi,i=1,2,……,n;基准图像fbi的建立包括以下步骤:
a1、将指针式仪表中的n个表盘的指针全部调整至零刻度位置,采集此时指针式仪表的图像;
a2、将步骤a1所采集图像进行灰度和二值化处理,获取指针式仪表的零刻度二值图像;
a3、利用opencv对零刻度状态二值图像中的n个表盘按照内轮廓大小进行编号,并依次确定每个表盘中指针转动的圆心坐标0i,i=1,2,……,n;
a4、基于表盘i的圆心坐标0i确定表盘i的感兴趣区域roii,获取表盘i的指针区域图像;
a5、基于表盘i的圆心坐标0i,利用hought变换提取步骤a4所得表盘i指针区域图像的直线lmini;
a6、将指针式仪表中的n个表盘的指针分别调整至满刻度位置,依次采集每个表盘满刻度时指针式仪表的图像,获取表盘i的满刻度仪表图像;
a7、将步骤a5所采集的表盘i的满刻度仪表图像进行灰度和二值化处理,获取表盘i的满刻度二值图像;
a8、基于表盘i的圆心坐标0i,确定表盘i的感兴趣区域roii,获取表盘i的指针区域图像;
a9、基于表盘i的圆心坐标0i,利用hought变换提取步骤a8所得表表盘i的指针区域图像的直线lmaxi;
a10、计算步骤a5所得直线lmini和步骤a9所得直线lmaxi之间的夹角作为量程夹角ai,基于零刻度状态二值图像的直线lmini、直线lmaxi和量程夹角ai构成表盘i的基准图像fbi;b、建立指针式仪表所包括的n个表盘的待测图像fti,i=1,2,……,n;待测图像fti的建立包括以下步骤:
b1、将指针式仪表调整至工作状态,实时采集工作状态下的指针式仪表图像;
b2、将步骤b1所采集图像进行灰度和二值化处理,获取指针式仪表的待测二值图像;
b3、基于步骤a所得表盘i的圆心坐标0i,确定表盘i的感兴趣区域roii,获取表盘i的指针区域图像;
b4、利用hought变换提取步骤b3所得表盘i的指针区域图像的直线lti,基于待测二值图像的直线lti构成表盘i的待测图像fti;
c、将表盘i的待测图像fti与基准图像fbi进行位置比对,计算表盘i的读数p:首先,计算表盘i的待测图像fti中的直线lti与基准图像fbi中的直线lmini之间的夹角βi,然后,根据公式(1)计算待测图像fti中指针的读数p:
p=mi*βi/ai(1)公式(1)中,mi表示表盘i的量程。
所述步骤a2、a7和b2中灰度和二值化处理包括以下过程:
(1)通过加权平均法对采集到的图像进行灰度化处理,得到灰度图像;灰度化处理的公式为:
gray=r*0.992+g*0.587+b*0.114(2)
公式(2)中,r表示彩色图像的红色通道像素值,g表示彩色图像的绿色通道像素值,b表示彩色图像的蓝色通道像素值;
(2)采用中值滤波器去除灰度图像的脉冲噪声和椒盐噪声,同时保留灰度图像的边缘细节;其中,中值滤波器的中值滤波的窗口大小为3×3;
(3)通过固定阈值法对步骤(2)所得图像进箱二值化处理,获取黑白图像;其中,固定阈值的选择采用最大类间方差算法ostu求取。
所述的步骤a5、a9和b4中,利用hought变换提取表盘i的指针区域图像的直线的过程为:
①、使用形态学运算对感兴趣区域roii进行先腐蚀后膨胀,实现指针区域图像的减噪
处理;
②、采用快速图像细化算法将步骤①所得的指针区域图像进行细化,将臃肿的指针像
素简化为单像素相连的二值图像,得到指针区域图像的骨架;
③、基于指针区域图像的骨架,通过hough变换提取表盘i的二值图像中指针区域的
直线。
所述hough变换的变换公式为:
公式(3)和公式(4)中,设表盘指针所在直线为y=kx+b,(x1,y1)和(x2,y2)表示直线y=kx+b上的两个点,ρ表示从原点引到直线y=kx+b的垂线长度,θ表示从原点引到直线y=kx+b的垂线与x轴正向的夹角。
本发明具有以下有益效果:
(1)通过对指针式仪表中的多个表盘先进行图像采集、灰度化、中值滤波和二值化处理后,将多个表盘进行排序编号,再分别对每个表盘进行提取roi、开运算、指针细化、hough变换直线检测和仪表刻度计算,最终自动获取指针式仪表上每个表盘的示值,打破一张图像只能识别单个仪表的限制,节约图像采集时间和存储空间,从而提高图像识别效率;
(2)通过使用形态学运算对感兴趣区域roii进行先腐蚀后膨胀,实现指针区域图像的减噪处理,通过采用快速图像细化算法将指针区域图像进行细化,将臃肿的指针像素简化为单像素相连的二值图像,从而提高仪表的自动读数精度。
附图说明
图1为本发明的流程图;
图2为具体实施方式的步骤a1中采集的指针式仪表图像;
图3为具体实施方式的步骤a2中获取的零刻度二值图像;
图4为具体实施方式的步骤a4中表盘一的感兴趣区域图像;
图5为具体实施方式的步骤a4中表盘二的感兴趣区域图像;
图6为具体实施方式的步骤①中经过减噪处理的表盘一的感兴趣区域图像;
图7为具体实施方式的步骤①中经过减噪处理的表盘二的感兴趣区域图像;
图8为具体实施方式的步骤②中经过细化后的表盘一的指针区域图像的骨架;
图9为具体实施方式的步骤②中经过细化后的表盘二的指针区域图像的骨架。
具体实施方式
为了更好地理解本发明,下面结合附图对本发明的技术方案作进一步说明:
此处以包含左右两个表盘的指针式仪表的自动读数为例进行说明,设右侧表盘为表盘一,设左侧表盘为表盘二;如图1所示,本发明包括以下步骤:
a、采用vs2012+opencv的架构,建立指针式仪表所包括的两个表盘的基准图像fbi,i=1,2;
基准图像fbi的建立包括以下步骤:
a1、将指针式仪表中的两个表盘的指针全部调整至零刻度位置,如图1所示,采用摄像机采集此时指针式仪表的图像并保存为jpeg格式;
a2、将步骤a1所采集图像进行灰度和二值化处理,如图2所示,获取指针式仪表的零刻度二值图像;
a3、利用opencv对零刻度状态二值图像中的两个表盘按照内轮廓大小进行编号,并依次确定每个表盘中指针转动的圆心坐标0i,i=1,2;
a4、基于表盘i的圆心坐标0i确定表盘i的感兴趣区域roii,获取表盘i的指针区域图像;如图4和图5所示,图4为位于右侧的表盘一的感兴趣区域,图5为位于左侧的表盘二的感兴趣区域;
a5、基于表盘i的圆心坐标0i,利用hought变换提取步骤a4所得表盘i指针区域图像的直线lmini;
a6、将指针式仪表中的n个表盘的指针分别调整至满刻度位置,依次采集每个表盘满刻度时指针式仪表的图像,获取表盘i的满刻度仪表图像;
a7、将步骤a5所采集的表盘i的满刻度仪表图像进行灰度和二值化处理,获取表盘i的满刻度二值图像;
a8、基于表盘i的圆心坐标0i,确定表盘i的感兴趣区域roii,获取表盘i的指针区域图像;
a9、基于表盘i的圆心坐标0i,利用hought变换提取步骤a8所得表表盘i的指针区域图像的直线lmaxi;
a10、计算步骤a5所得直线lmini和步骤a9所得直线lmaxi之间的夹角作为量程夹角ai,基于零刻度状态二值图像的直线lmini、直线lmaxi和量程夹角ai构成表盘i的基准图像fbi;b、建立指针式仪表所包括的n个表盘的待测图像fti,i=1,2,……,n;待测图像fti的建立包括以下步骤:
b1、将指针式仪表调整至工作状态,实时采集工作状态下的指针式仪表图像;
b2、将步骤b1所采集图像进行灰度和二值化处理,获取指针式仪表的待测二值图像;
b3、基于步骤a所得表盘i的圆心坐标0i,确定表盘i的感兴趣区域roii,获取表盘i的指针区域图像;
b4、利用hought变换提取步骤b3所得表盘i的指针区域图像的直线lti,基于待测二值图像的直线lti构成表盘i的待测图像fti;
c、将表盘i的待测图像fti与基准图像fbi进行位置比对,计算表盘i的读数p:首先,计算表盘i的待测图像fti中的直线lti与基准图像fbi中的直线lmini之间的夹角βi,然后,根据公式(1)计算待测图像fti中指针的读数p:
p=mi*βi/ai(1)公式(1)中,mi表示表盘i的量程。
上述步骤a2、a7和b2中灰度和二值化处理包括以下过程:
(1)通过加权平均法对采集到的图像进行灰度化处理,得到灰度图像;灰度化处理的公式为:
gray=r*0.992+g*0.587+b*0.114(2)
公式(2)中,r表示彩色图像的红色通道像素值,g表示彩色图像的绿色通道像素值,b表示彩色图像的蓝色通道像素值;
(2)采用中值滤波器去除灰度图像的脉冲噪声和椒盐噪声,同时保留灰度图像的边缘细节,消除孤立的噪点,实现图像滤波;其中,中值滤波器的中值滤波的窗口大小为3×3;
(3)通过固定阈值法对步骤(2)所得图像进箱二值化处理,获取黑白图像;其中,固定阈值t的选择采用最大类间方差算法ostu求取。
上述步骤a5、a9和b4中,利用hought变换提取表盘i的指针区域图像的直线的过程为:
①、如图6和图7所示,使用形态学运算对感兴趣区域roii进行先腐蚀后膨胀,实现
指针区域图像的减噪处理;
②、如图8和图9所示,采用快速图像细化算法将步骤①所得的指针区域图像进行细
化,将臃肿的指针像素简化为单像素相连的二值图像,得到指针区域图像的骨架;
③、基于指针区域图像的骨架,通过hough变换提取表盘i的二值图像中指针区域的
直线。
1.上述hough变换的过程是通过hough变换提取图像中的直线,即指针,其基本原理是利用点线的对偶性,通过变换将图像空间转换到参数空间中;hough变换的变换公式为:
公式(3)和公式(4)中,设表盘指针所在直线为y=kx+b,(x1,y1)和(x2,y2)表示直线y=kx+b上的两个点,ρ表示从原点引到直线y=kx+b的垂线长度,θ表示从原点引到直线y=kx+b的垂线与x轴正向的夹角。将直线坐标系同一直线上的点对应极坐标系中的一条曲线,且所有曲线相交于一点,参数空间中共点的曲线数即为直角坐标系中共线的点数,将极坐标空间量化成许多累加器小格,图像中的点映射到hough变换中的一组累加器中,满足以上正弦曲线方程的每一点将使相应的所有累加器加一,累加器最大值对应于图像最长的直线。
本发明主要应用于具有多个表盘的指针式仪表的自动读数场合的自动读数,例如用于开关柜、汽车的指针式仪表,以及多个水表、电表和天然气表,能够同时对具有多个表盘的指针式仪表进行自动读数,打破一张图像只能识别单个仪表的限制,节约图像的采集时间和存储空间,从而提高图像识别的效率。
本发明的技术方案是通过采用vs2012+opencv的架构,对抓拍到的多个指针式仪表进行识别和读数,具体的方法是通过摄像机采集所要识别的图像,通过加权平均法对图像进行灰度化处理,利用中值滤波器去除脉冲噪声、椒盐噪声,同时保留图像的边缘细节,中值滤波的窗口大小为3×3;用于固定阈值方法对图像进行二值化处理,其中,固定阈值的选择采用最大类间方差ostu算法求取;然后提取表盘达到的感兴趣区域roi,在图像中有n个指针式仪表表盘时,提取所有表盘的轮廓区域图,并根据指针式仪表轮廓区域中心所在的坐标位置对n个指针式仪表进行排序;然后依次对n个指针式仪表进行开运算处理,删除不能包含结构元素的对象区域,平滑对象的轮廓,断开狭窄的连接,去掉细小的突出部分,得到指针区域;利用快速图像细化算法将得到的“臃肿”的指针像素简化为单像素相连的二值图像,从而提高仪表的自动读数精度;通过hough变换直线检测方法提取细化后的指针,并通过待测图像与基准图像中两个指针的位置求出读数。最终,实现多个指针式仪表的自动读数。本发明可以架设于多种类型的指针式仪表上,应用范围广,且节约图像采集时间和存储空间,提高了图像识别效率。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。