基于FPGA的车牌识别主要包含以下几个步骤:图像采集、颜色空间转换、边缘检测、形态学处理(腐蚀和膨胀)、特征值提取、模板匹配、结果显示。先用matlab对原理进行仿真,后用vivado和modelsim进行设计和仿真。
一、1.图像采集采用ov5640摄像头使用I2C协议对其进行驱动从而实时捕获数据
2.数据通过DDR3进行缓存,并使用fifo进行乒乓缓存
3.采用XC7A100T开发板进行数字图像处理
4.结果显示在 640 X 480的lcd显示屏上
二、1.图像采集
2.颜色空间转换:将RGB图像数据转换为YCbCr颜色空间。Y:亮度 Cb:蓝色分量 Cr:红色分量。
3.边缘检测:使用sobel算子对图像中的车牌和字符边界分别进行边缘检测。通过对Y通道图像进行Sobel边缘检测,可以得到车牌区域的轮廓。
4.形态学处理:通过腐蚀和膨胀操作,去除图像中的噪点,并对检测到的车牌图像区域进行形态学处理。腐蚀操作腐蚀掉大部分的噪点,而膨胀操作可以增强图像的对比度,从而更好地定义车牌区域。
5.特征值提取:将图像划分为了8 x 5 = 40个区域,每个区域包含多个像素点,对每个区域进行求和,最后得出特定的特征值。
6.模板匹配:将特征值与设定的统一字符模板进行匹配,找出最符合的字符。
7.结果显示在LCD
三、数字图像处理模块
1:流程处理

2:MATLAB对原理进行仿真:




3:vivado模块设计:

4.上板验证:
参考正点原子和虎慕