闲庭信步使用图像验证平台加速FPGA的开发:第三十二课——车牌识别的FPGA实现(4)车牌字符的分割定位

(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球: 成工fpga, https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!)

上篇我们完成了车牌字符分割定位的预处理,本篇就完成车牌字符的分割。

车牌字符的上下边界比较容易定位,其实在30课的图像字符定位中基本完成了字符上下区域的定位,这儿进一步进行精细的定位。在车牌字符以外的区域,图像数据全是0,在有字符的区域,相邻图像数据开始有0和1的变化,我们假设一行图像数据中有threshold次相邻图像数据的变化,如果第一次达到这个要求,那这一行就是字符的上边界,如果最后一次达到这个要求,那这一行就是字符的下边界。

在\src\char_segmentation文件夹下新建char_horizontal_location.sv文件,完成字符上下边界的定位。boarder_flag信号用来判断上下边界,当boarder_flag==0且jump_cnt达到threshold,那这一行就是上边界,如果boarder_flag==1且jump_cnt达到threshold,那这一行就是下边界,当然下边界会一直更新,到最后一行我们把最后更新的那行当成下边界。

车牌的字符有7个加一个点,左右边界就是把这八个区域分割开。看图片,把八个字符分开还是挺容易的,字符直接都是空白的区域,我们可以将每列的数据相加求和,最后对相邻两列的数据进行比对和判断,如果上一列是0,这一列不是0,那这一列就是一个字符的左边界;如果上一列不是0,这一列是0,那这一列就是一个字符的右边界。同时要盘点一个字符左右边界的宽度,如果宽度太小也可以是误判,比如"川""沪""皖"等左右结构的字

在\src\char_segmentation文件夹下新建char_vertical_location.sv文件,如下用组合逻辑实时计算字符的宽度和左右边界。

如下完成一幅图像每列数据的求和,并在最后一行时候就求和的结果从数组中读出来。

如下实现了一个字符左右边界的判断和记录,需要注意的就是一些特殊的字符和第二字符点的判断。

新建一个char_sgm_out.sv,用来实现将每个字符的区域在图片上显示出来。

在\src\char_segmentation文件夹下新建char_segmentation.sv,例化车牌字符分割相关的模块。如下所示。

在top文件中例化plate_location模块和char_segmentation模块。

在tb_image_sim文件中,完成图片的绘制。

双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。

最后打开img文件夹下的output文件夹,可以看到分割的图片。

并不是所有的图片的字符都能识别并正确的分割,如下的一幅图片,由于底部的信号没有完全消除,导致字符1左边多识别了一个字符,从而将第一个字符"京"挤出来存储的数组。

卷大多数图片还是能正确分割的,如下所示。

相关推荐
网安INF2 小时前
【论文阅读】-《THE JPEG STILL PICTURE COMPRESSION STANDARD》
论文阅读·计算机视觉
喜欢丸子头5 小时前
xilinx vivado fir ip(FIR Compiler)核 ADC高采样率,FPGA工作时钟为采样率的1/4,同一个时钟周期来四个数据。
fpga开发
璞致电子5 小时前
【PZ-AU15P】璞致fpga开发板 Aritx UltraScalePlus PZ-AU15P 核心板与开发板用户手册
嵌入式硬件·fpga开发·fpga·fpga开发板·xilinx开发板
格林威11 小时前
Linux使用-Linux系统管理
linux·运维·服务器·深度学习·ubuntu·计算机视觉
红糖果仁沙琪玛12 小时前
fpga iic协议
fpga开发
山烛12 小时前
OpenCV 模板匹配
人工智能·python·opencv·计算机视觉·目标跟踪·模板匹配
嵌入式-老费12 小时前
Zynq开发实践(FPGA之pwm输出)
fpga开发
豆浩宇13 小时前
学习PaddlePaddle--环境配置-PyCharm + Conda
人工智能·深度学习·学习·目标检测·计算机视觉·pycharm·paddlepaddle
hexiaoyan82714 小时前
光纤加速的板卡设计原理图:基于6U VPX XCVU9P+XCZU7EV的双FMC信号处理板卡
嵌入式硬件·fpga开发·光纤加速板卡·国产化板卡·xcvu9p板卡·xcvu9p
大熊背16 小时前
白平衡分块统计数据为什么需要向下采样?
人工智能·计算机视觉·白平衡