车牌识别--铆钉的去除
2016-04-061.2万
AI 快速预览详细
本文讨论了车牌识别中的铆钉干扰问题,并提供了一种有效的铆钉去除方法。首先通过颜色HSV确认车牌位置,然后截取车牌图像并进行二值化处理。接着,通过水平投影计算每行的白点数,发现铆钉嵌入字符中间时无法去除干扰。为此,本文提出了一种新的方法,通过计算每行的跳变次数,小于5次的行全局搜索白点,宽度大于15像素且高度大于25像素的视为字符区域,否则视为铆钉并删除。最终,该方法成功去除了铆钉干扰,实现了正确的车牌字符分割和识别。
|
车牌识别中,每一步的效果直接影响整体的识别率,对车牌识别产生干扰的,不仅是车牌的污渍,还有铆钉。 一 、举例说明,铆钉干扰使得车牌识别错误 1、车辆图片 2、通过颜色HSV确认车牌大致位置 3、截取车牌图像 4、二值化后,水平投影,从图片中可以很清楚看到铆钉 5、字符分割后的车牌 6、提取分割后的车牌字符 7、错误的识别结果 二、改善方法 这里针对车牌识别的干扰去除方法加以改善。 1、原先博文中车牌识别中去除铆钉的方法,只是用投影的方法。粗略计算铆钉在车牌的上方,白点信息较少,通过水平投影计算每一行的白点数 但是当铆钉嵌入字符中间时,仍然无法去除干扰。 2、这里采用直接出去铆钉的方法, 1)、首先尽量分离字符与铆钉的链接 2)、计算每行的跳变次数,一边铆钉所在行,都是两次,不大于3次,超过7次的,就是字符区域所在行。 这里使用的方法是在跳变次数小于5的行里面,全局搜索白点,然后计算它的宽度和高度,如果宽度大于15个像素,高度大于25个像素(这里车牌归一化后字符大小为20X40),那么他就不是铆钉,否则就当做铆钉删掉。 全局遍历代码:
[color=rgb(51, 102, 153) !important]复制代码 删除铆钉的函数 img:用了记录车牌的宽度高度信息等 dst:是二值化后的车牌信息,即要遍历查找铆钉的空间 *flag:用来标志是不是铆钉 *x1, *x2 用来计算铆钉宽度 *x2-*x1; *y1, *y2 同上 xlength,ylength,设置铆钉宽度高度阈值。
[color=rgb(51, 102, 153) !important]复制代码 3)、去除铆钉的车牌 4)、正确分割 5)、正确提取字符 6)、正确识别结果 源码稍后,提供,车牌识别的代码,我将继续优化,提高识别率,尽早能够应用在arm平台上。 |





LZ来个连载吧