本系统以STM32F103RBT6单片机为主控,控制OV7670摄像头(带FIFO)进行图像采集,通过模式识别、匹配,最后获得车牌的识别结果。为尽大可能的提高处理速度,STM32单片机进行了16倍频。识别主要过程包括图像采集、二值化分析、识别车牌区域、字符分割、字符匹配五过程。
系统框图 系统框图 识别原理图像采集
图像通过OV7670摄像头进行数据采集,采集的图像大小为320*240像素,像素格式为RGB565。每个像素由两字节组成,第一字节的高五位是R,第一字节的低三位和第二字节的高三位组成G,第二字节的低五位是B。图像通过STM32单片机读取,并将数据进行特殊处理后,显示于TFT显示屏上。
二值化分析
摄像头的数据在采集过程中,对每个像素进行二值化处理,即设定R、G、B的阈值。通过二值化处理,将像素值分为全黑0x0000和全白0xffff两种。同时通过程序分析出每行的跳变点。分析跳变点的目的是识别出车牌区域。
识别车牌区域
通过二值化分析出各行的跳变点,车牌区域处由于字符,导致跳变点明显较多,约大于15个,通过跳变点的分析和判断,即可识别出车牌区域位置。本系统程序中设定跳变点大于15个,在连续行存在多个跳变点大于15的位置处,将起始位置设定为车牌区域的上边边界Y_up,结束位置设定为车牌区域的下边边界Y_down。再通过RGB-HSV颜色转换,识别出车牌区域的左边边界X_left和右边边界X-right。这样既可获取车牌区域的准确边界,如下图蓝色边框范围。
字符分割
车牌区域识别后,再次通过二值化进行字符的分割处理。处理过程中,获取各个字符的左边边界kk和右边边界k,若分割出来的字符数为8,则分割比较准确。
字符匹配
字符分割后,进行归一化处理,再逐一对各个字符进行字符匹配。字符模板通过取模软件先提取出,存放于程序中,其大小为24*50的单一像素。匹配后,将相似性最大值的对应字符作为输出结果,并予以显示。