论文部分内容阅读
机械水表在出厂之前都会对水表检定,目前在我国大部分水表厂仍然是通过人工抄表的方式对水表作检定,这样不仅需要消耗大量的人工,而且检测准确性受人为因素大。科技的高速发展,使得水表读数自动识别取代人工读数成为必然。本文就是通过机器视觉技术实现水表读数自动识别。如下本文研究的主要内容:(1)硬件系统和软件系统的设计:硬件系统的设计主要是实验平台的搭建,包括相机、镜头和光源的选型;软件系统是开发基于opencv和VC++平台的水表读数自动识别系统。(2)指针读数的识别:将硬件平台搭建好后,采集水表图片,获得的图片是RGB彩色模型,为了将红色指针提取出来,需要将彩色模式转化为HSV彩色模型,提取H通道,红色就容易提取出来;由于图片中有较多孤立的杂点,因此需要用滤波器去除噪声,同时还要保留图片的大部分信息,本文采用的是中值滤波去除图片的噪声,效果很好;下面将图像做二值化处理,指针从背景中凸显出来了。然后用Canny算子提取指针的轮廓,在通过闭运算优化指针轮廓;根据聚类圆拟合算法求出指针圆心的坐标,这也是本文的创新点,该方法相对传统的模板匹配来说运算量小,速度快;通过距离法求出指针尖端,结合求出的圆心坐标和指尖尖端的坐标就可以求出水表的指针指向,再根据指针的偏转角度与示数的关系,就实现了指针读数的识别。(3)字轮数字读数识别:将采集的图片先做灰度处理,不仅可以减少图片的数据量,又可以保留图片的大部分信息;用Soble算子检测图像的边缘,突出图像的边缘信息;在用简单的全局阈值对图像进行二值化处理;通过Hough直线检测定位字轮框,将提取的字轮再作倾斜矫正,然后根据已知单个字符宽度占整个字轮框的宽度的比值,将单个字符分割出来,再将单字符二值化处理后,输入到支持向量机作分类和识别处理。通过试验表明该系统实时性强、识别率高,适应性好。