当前位置: 首页 > news >正文

闲庭信步使用图像验证平台加速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左边多识别了一个字符,从而将第一个字符“京”挤出来存储的数组。

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

http://www.lryc.cn/news/597675.html

相关文章:

  • Android组件化实现方案深度分析
  • 向华为学习——学习华为政务数据安全建设指南【附全文阅读】
  • 【机器学习深度学习】生成式模型的评估与验证
  • QPixmap::scaled参数说明
  • 跟著Qcadoo MES系统学习产品设计001
  • 突发限制下的破局之路:国产之光 Lynx 重构 AI 开发安全壁垒
  • [CH582M入门第十步]蓝牙从机
  • Nestjs框架: 基于Prisma的多租户功能集成和优化
  • 【大模型】Hugging Face常见模型格式详解
  • Linux Debian操作系统、Deepin深度操作系统手动分区方案参考
  • 解决Playwright启动报错:Executable doesn‘t exist at .../chrome-linux/chrome
  • 2025年华为HCIA人工智能认证发展前景如何?客观分析!
  • 459. 重复的子字符串
  • 系统思考:经济反馈的循环
  • [每日随题15] 前缀和 - 拓扑排序 - 树状数组
  • C# 日期与时间 DateTime 结构和TimeSpan 结构
  • 扫地机产品的电池CQC认证遵循哪个标准?
  • socket编程(TCP)
  • 位运算在算法竞赛中的应用(基于C++语言)_位运算优化
  • 代码随想录训练营第二十九天| 77.组合 216.组合总和lll 17.电话号码的字母组合
  • 【LeetCode 热题 100】78. 子集——(解法三)位运算
  • 传统RNN模型笔记:输入数据长度变化的结构解析
  • QT开发---基础介绍及环境搭建
  • 表征工程与置信度增强:表征工程是提取隐藏层状态表征,LLM的置信度增强是优化的logist数值
  • VRRP技术(虚拟路由器冗余协议)
  • uni-app动态获取屏幕边界到安全区域距离的完整教程
  • Elasticsearch(ES)介绍和安装
  • Elasticsearch(ES)安装
  • 西门子 S7-1500分布式 I/O通信 :PROFINET IO 与 PROFIBUS DP详解(下)
  • PL/SQL Developer查看物化视图的方法