閑庭信步使用圖像驗證平臺加速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.pswp.cn/bicheng/90295.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90295.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90295.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

03_java_運行機制

1. java執行流程2. 什么是編譯3. 什么是運行

鴻蒙卡片開發保姆級教程

卡片 1. 卡片概念 什么是卡片?卡片用來顯示或者提示一些基本信息或者進行一些基本操作。注意不能做重邏輯,所有重要邏輯全部交給應用如果是元服務如何喚醒?因為元服務不提供桌面應用圖標,我們可以通過用戶手動的方式在桌面上添加一…

反向傳播及優化器

反向傳播(Backpropagation)反向傳播是計算梯度的算法,核心作用是高效求解 “損失函數對模型所有參數的偏導數”(即梯度)。沒有反向傳播,深度學習的大規模訓練幾乎不可能實現。 整個過程像 “從終點回溯到起…

【機器學習深度學習】生成式模型的評估與驗證

目錄 前言 1. 主觀評估:以人為本的質量判斷 1.1 什么是主觀評估? 1.2 主觀評估的核心流程 1.3 主觀評估的優缺點 2. 客觀評估:量化的性能衡量 2.1 什么是客觀評估? 2.2 常見的客觀評估指標 文本生成 圖像生成 多模態生…

Linux文件——Ext2文件系統(3)_軟硬鏈接

文章目錄文件的軟硬鏈接軟鏈接硬鏈接軟硬鏈接對比軟硬鏈接應用軟硬鏈接注意事項總結文件的軟硬鏈接 本篇文章將重點講解文件系統中的一個重要的知識點: 即文件的軟硬鏈接。 軟鏈接 對于軟鏈接的講解,我們先來使用一個指令看看效果:ln -s 被…

Java SE:類與對象的認識

Java中的類與對象:構建程序世界的基石 在Java編程的世界里,類與對象是面向對象編程(OOP)的核心概念,它們就像構建大廈的磚瓦,支撐起整個程序的結構。理解類與對象,是掌握Java編程的關鍵一步。 類…

Hexo - 免費搭建個人博客03 - 將個人博客托管到github,個人博客公開給大家訪問

導言我的博客:https://q164129345.github.io/ 既然要將個人博客托管到github,首先我們肯定要有一個github賬戶。另外也需要在電腦上安裝另外一個著名的代碼管理工具git。 一、創建github倉庫二、在Hexo設置部署的內容# Deployment## Docs: https://hexo.…

一次Oracle集群腦裂問題分析處理

問題描述 填寫問題的基礎信息。 系統名稱 數據庫集群 IP地址 xxxxxx 操作系統 Linux 數據庫 Oracle 11.2.0.4 癥狀表現 問題的癥狀表現如下 4月26號晚22點02分左右,HIS集群發生腦裂,十幾分鐘后(22.18)一節點集群率先獲…

0基礎法考隨手筆記 02(刑訴法專題04 辯護與代理)

0基礎法考隨手筆記 02(刑訴法專題04 辯護與代理) 1.值班律師相關權力義務2. 3. 4.什么是強制醫療 注意:為強制醫療指派的律師,是訴訟代理人,不是辯護人,因為此人不會被追究刑事責任。 “強制醫療” 是刑事訴…

HF86611_VC1/HF86611Q_VC1:多通道USB HiFi音頻解碼器固件技術解析

引言隨著音頻技術的不斷發展,多通道音頻處理和多接口兼容性成為現代音頻設備的重要需求。本文將介紹一款基于XMOS XU316技術的多通道USB HiFi音頻解碼器固件——HF86611_VC1/HF86611Q_VC1,這是一款專為多接口HiFi音頻應用設計的軟件解決方案。產品概述HF…

python---列表(List)

文章目錄創建列表基本操作訪問元素(索引)切片操作修改列表常用方法列表推導式多維列表列表是 Python 中最基本、最常用的數據結構之一,它是一個有序的可變集合,可以包含不同類型的元素。創建列表 # 空列表 empty_list [] empty_…

ESP32-S3學習筆記<3>:UART的應用

ESP32-S3學習筆記<3>:UART的應用1. 頭文件包含2. UART的配置2.1 uart_num的選擇2.2 uart_config的設定2.2.1 baud_rate/波特率設置2.2.2 data_bits/數據位數設置2.2.3 parity/奇偶校驗位設置2.2.4 stop_bits/停止位設置2.2.5 flow_ctrl/流控位…

【Vue3】加載高德地圖案例

官方API:展示地圖-入門教程-地圖 JS API 2.0 | 高德地圖API 1、獲取高德Key 參考:準備-地圖 JS API 2.0 | 高德地圖API 2、創建工程 npm create vitelatest 3、下載依賴集運行項目 npm install npm i amap/amap-jsapi-loader --save npm run dev 4、編寫核心…

【工具】Pycharm隱藏側邊燈泡提示

問題描述 在Pycharm中,每行前面很容易出現一個小燈泡,有時候很影響操作,需要將其取消掉設置方法打開設置 按 CtrlAltS 打開設置對話框或者通過菜單 File → Settings(在 macOS 上是 PyCharm → Preferences)導航到外觀…

XSS相關理解

由于本人對一小部分dom型xss、原型鏈污染和存儲型xss理解不夠透徹,因此在本篇文章中原型鏈污染和存儲型xss偏重進行概念理解或簡單的代碼理解,隨后會慢慢補充 文章目錄1 XSS概述1.1 什么是XSS?1.2 XSS主要分三種類型2 XSS基礎2.1 XSS基礎練習…

Odoo:免費開源的金屬制品行業ERP管理軟件

引言開源智造Odoo數字化解決方案專家團隊意識到,在當今全球市場中,將盈利能力和競爭力最大化的機會促使許多金屬制品制造商投資于推進業務發展的新技術。金屬制品會計軟件是企業用來處理他們業務和增加利潤的解決方案。某金屬制品加工工藝流程圖&#xf…

Ubuntu22.04配置GTest測試框架

前言 鴻蒙系統的代碼倉庫使用GTest作為單元測試的工具。特性開發時,需要寫demo以驗證開發思路。因此有必要搭建GTest開發環境配合鴻蒙特性開發做開發demo。 我測試環境是wsl2 Ubuntu22.04 LTS。 搭建過程 安裝必備C組件 sudo apt install -y unzip g gcc cmake …

學習日志15 python

1 filter() 函數filter(function, iterable)filter函數是python中的高階函數, 第一個參數是一個篩選函數, 第二個參數是一個可迭代對象, 返回的是一個生成器類型, 可以通過next獲取值。filter() 函數是 Python 內置的高階函數,其主要功能是對可迭代對象中的每個元素…

Linux 環境下安裝 MySQL 8.0.34 二進制 詳細教程 附docker+k8s啟動

文章目錄Linux 環境下安裝 MySQL 8.0(二進制)詳細教程準備工作安裝依賴包下載并解壓 MySQL下載 MySQL 二進制包解壓 MySQL移動目錄并創建 MySQL 用戶配置 MySQL配置數據目錄與日志目錄編輯配置文件 /etc/my.cnf初始化 MySQL 數據庫配置啟動腳本與環境變量…

HTML ISO-8859-1: 完全解析

HTML ISO-8859-1: 完全解析 引言 ISO-8859-1,又稱為 Latin-1,是一種廣泛使用的字符編碼標準,特別是在HTML文檔中。本文將詳細介紹ISO-8859-1編碼的特點、應用場景以及如何在使用HTML時正確地使用ISO-8859-1編碼。 ISO-8859-1編碼概述 定義 ISO-8859-1編碼是一種單字節編…