车牌识别软件首先要对输入图像进行二值化处理,然后定位。
整个过程如下图表示:

原始图像

二值化后的图像

定位后的图像

放大定位后的图像
要实现字符分割,可以扫描定位后车牌中所有的点。
如果扫描中发现前景颜色的点。
则以该点为种子,利用种子填充算法获得整个字符的所有像素,
为进一步的字符识别准备数据。
每访问一个前景像素需要做一个记号,以免得到重复的字符。
实际上,该算法无法对汉字进行分割。
因为有些汉字(比如上图中的“京”字)
可能有多个区域组成。
利用填充算法得到六到七个字符。
这些字符的顺序可能不正确。
需要进一步排序。排序的关键字可以是每个字符的中心。
字符中心很容易获得,方法是
取字符上所有像素坐标点的平均值。
种子填充算法的基本思想
种子填充算法的基本思想很简单:
对种子周围所有点进行判断。
如果当前的邻居和种子有相同的颜色,
而且从来没有被访问到过,
那么这个邻居点就是要被填充的点。
然后以这个邻居点为种子重复上述操作。
如果利用函数递归调用,整个算法也很容易实现。
但是这样做的效率很低,改进算法很多,
比如扫描线种子填充算法。