最常用的图像分割方法是把图像灰度分成不同的等级,然后用设置灰度门限(阈值)将图像二值化,分割出有意义的区域,使得有用的信息均转换为黑色,而无用的信息被剔除转换为白色。对指示表图像来说有意义的区域是灰度值较小(较暗)的指针,而其他灰度值较大(较亮)的表盘是不感兴趣的区域。由于实际情况下指示表的指针和表盘问有较大的对比度,因此在均匀的光照条件下,很容易自动搜索出一个较为合理的阈值将图像二值化,灰度值大于该阈值的点变为白色,否则变为黑色。
该设计系统采用如下阈值选取算法:首先随机确定一个阈值T(T≠0),然后分别求出灰度大于T的像素的灰度平均值v1和灰度小于T的像素的灰度平均值 v2;再求出T'=(v1+v2)P2。确定一个终止条件,如ε=0.001,判断是否|T'-T|<ε。如果不满足,则用T'代替T继续进行下一轮运算;如果满足,则跳出循环,且以T'作为最终的阈值。
将二值化后的表盘图像中的各个像素从中心沿半径向圆周投影,投影的长度代表该方向上黑色像素的个数,投影最长的点应是指示表指针所在的位置,找到该点就可以通过对应关系求出指示表的读数。
7 结束语
该系统硬件部分简单,软件算法可靠性高,具有很高的通用性,对于不同的机械表盘,根据不同的需求添加相应的程序功能模块,选择不同口径的卡座,经简单调试就可以使用。简便易实现,在生产过程中具有广泛的应用价值。