電子發燒友網>今日頭條> > 正文

基于Verilog的“自適應”形態學濾波算法實現

2021年08月23日 16:17 ? 次閱讀

一、背景介紹

基于二值圖像的濾波算法即形態學濾波,在圖像目標采集的預處理中經常被使用到,針對不同的使用場景涉及到腐蝕、膨脹、開閉運算等處理。實際使用中對于不同的分辨率大小以及模板窗口大小,都要進行代碼的修改去適應不同的場景,特別是模板窗口比較大時,代碼改寫工作量就很大。因此,為了減少開發時間,本文實現了一個通用的算法IP,只需要修改模板窗口大小和工作模式(腐蝕or膨脹)參數即可,達到“自適應”目的,避免重復低效的工作。

二、形態學濾波原理

形態學濾波由腐蝕和膨脹兩種操作組成。首先,腐蝕(Erosion)的核心思想是圖像像素之間進行邏輯與運算,簡單來說,當一個包含當前像素的結構單元的像素值都為“1”時輸出待處理的的目標像素。

若采用窗口實現腐蝕操作,如圖2.1所示:

poYBAGEiBjeASAblAAB1DurJV8c268.png

圖2.1腐蝕效果示意圖

腐蝕的作用:在形態學中的腐蝕可以去除圖像中的物體邊界點,清除圖像中比結構元素小的毛刺或者小突起,此外,結構元素越大,腐蝕的面積就越大。所以,可以使用腐蝕運算操作小區域的非目標區域區分。

膨脹的核心思想是像素之間進行邏輯或運算,也就是說每個輸入像素在輸出圖像中被替換成結構單元的形狀。當結構單元中任何一個像素的灰度值為“1”時,那么輸出窗口內的像素都為“1”,此時輸出待處理的目標像素。公式可以表示為:

若采用窗口實現膨脹操作,如圖2.2所示:

poYBAGEiBnKAXN6OAABzgaKLQpk713.png

圖2.2膨脹效果示意圖

膨脹的作用:膨脹運算可以填充圖像中小于結構元素的孔洞以及圖像邊緣部分的一些小凹陷。對于目標區域腐蝕后再膨脹操作就是所謂的開運算。對所選定的目標區域先進行膨脹操作然后再進行腐蝕操作就是所謂的閉運算。

三、FPGA硬件實現

形態學濾波算法的FPGA硬件實現原理圖,如下圖所示。算法的輸入輸出接口信號采用標準的 VGA時序接口,即行場信號、數據和數據使能信號。算法模板輸入參數主要有兩個,Win_SIZE 表示窗口大小,WORK_MODE 表示工作在腐蝕還是膨脹模式,根據需要配置自己想要的模板大小和工作模式。

由于行緩存是基于RAM的實現的,本文設計的ram的規格大小是為2048x15,

深度2048表示支持的最大分辨率,數據位寬為15bit表示支持的最大的模板窗口大小為15x15,也可以根據需要修改ram規格,其他邏輯不需要改動。

poYBAGEiBpqAN7rFAAEPrXRvXjY399.png

最后,需要開運算或者閉運算時,只需要把兩個算法IP串聯起來,配置不同的參數即可。

四、仿真驗證

本節主要搭建一個視頻流Modelsim仿真平臺,在基于FPGA視頻圖像算法開發過程中,有必要模擬一個視頻時序,用來驗證算法,并有效的利用Matlab工具把靜態圖片“打散”保存到txt文本里,供Modesim讀取,然后通過Matalb“復現”處理后的文本。

3x3腐蝕仿真結果:

poYBAGEiBraAOwomAADbe28MUKs784.png

9x9腐蝕仿真結果:

pYYBAGEiBtKACpyHAADGZY6WH3Q185.png

5x5膨脹仿真結果:

poYBAGEiBvWADQR4AADvivIzR4Y889.png

poYBAGEiCl6AZxIlAACG4m7S_wA636.png

poYBAGEiCoWAan7_AACA1M3v3HU875.png

下載發燒友APP

打造屬于您的人脈電子圈

關注電子發燒友微信

有趣有料的資訊及技術干貨

關注發燒友課堂

鎖定最新課程活動及技術直播

電子發燒友觀察

一線報道 · 深度觀察 · 最新資訊
收藏 人收藏
分享:

評論

相關推薦

基于FPGA的自適應閾值分割算法實現

在圖像預處理中經常會碰到圖像分割問題,把感興趣的目標從背景圖像中提取出來,而經常使用的是簡單的全局閾....
發表于 2021-08-23 16:27? 65次閱讀
基于FPGA的自適應閾值分割算法實現

Verilog是編程語言嗎

知乎上刷到一個問題,問性能最強的編程語言是什么?看到高贊回答到是Verilog,然后在評論區就引發了....
發表于 2021-08-23 14:30? 102次閱讀
Verilog是編程語言嗎

數學通道的應用之電流的計算

數學通道的應用(二)—電流的計算 下面的數學通道使用歐姆定律將電壓除以電阻得到電流。我在這里是將0.....
發表于 2021-08-23 09:37? 75次閱讀
數學通道的應用之電流的計算

關于FPGA進行外部邊沿檢測,檢測不準確問題?

求助各位大佬! 目的是觀測到外部出現兩個下降沿信號后FPGA做下一步動作(例如led狀態翻轉閃爍); 外部設備定時...
發表于 2021-08-21 12:58? 324次閱讀
關于FPGA進行外部邊沿檢測,檢測不準確問題?

Xilinx賦能深維科技GIF2WebP動圖方案...

Xilinx? Alveo? U200加速卡助力深維科技 (DeePoly)ThunderImage....
發表于 2021-08-20 11:52? 1029次閱讀
Xilinx賦能深維科技GIF2WebP動圖方案...

干擾濾波技術和濾波電感在電源抗干擾中的應用

發表于 2021-08-20 11:37? 34次閱讀
干擾濾波技術和濾波電感在電源抗干擾中的應用

OrgSig與基于MALLAT算法的小波變換不同

一、主要思路 原始信號:OrgSig與基于MALLAT算法的小波變換不同,提升小波變換不產生數組L,只產生C數組。定...
發表于 2021-08-18 07:40? 0次閱讀
OrgSig與基于MALLAT算法的小波變換不同

如何使用matlab

寫在前面的話:文章內容來源于但不限于網絡、書籍、個人心得體會等,意在總結和方便各位同行快速參考,共同學習進步,...
發表于 2021-08-18 07:36? 0次閱讀
如何使用matlab

Verilog語言中阻塞和非阻塞賦值的不同

來源:《Verilog數字系統設計(夏宇聞)》 阻塞和非阻塞賦值的語言結構是Verilog 語言中最....
發表于 2021-08-17 16:18? 1355次閱讀
Verilog語言中阻塞和非阻塞賦值的不同

MATLAB多維極值之單純形法算法原理

一、算法原理1、問題引入在之前講解過的多維極值的算法中(最速下降法、牛頓法、共軛梯度法、擬牛頓法等),我們都利用...
發表于 2021-08-17 09:24? 0次閱讀
MATLAB多維極值之單純形法算法原理

基于MPU6050及卡爾曼濾波的平衡小車設計

預告:代碼及文檔下載一、文檔主要包含資料二、文檔代碼1、卡爾曼濾波(matlab代碼)clearclc;N=50;CON = 25; %房...
發表于 2021-08-17 09:09? 0次閱讀
基于MPU6050及卡爾曼濾波的平衡小車設計

DFP算法原理

DFP算法原理由于博主使用WPS編輯的文本,公式無法賦值粘貼,這里以截圖的方法給出了推導過程。博主會上傳該DO...
發表于 2021-08-17 09:03? 0次閱讀
DFP算法原理

Matlab-LMS算法演示

Matlab-LMS算法演示通過使用LMS算法進行系統識別。LMS(最小均方)是自適應濾波器算法之一。在這個MATL...
發表于 2021-08-17 08:59? 0次閱讀
Matlab-LMS算法演示

用S3C2440訓練神經網絡算法

嵌入式設備自帶專用屬性,不適合作為隨機性很強的人工智能深度學習訓練平臺。想象用S3C2440訓練神經網絡算法都會頭皮...
發表于 2021-08-17 08:51? 0次閱讀
用S3C2440訓練神經網絡算法

果蠅優化算法MATLAB實現

果蠅優化算法MATLAB實現發布時間:2018-10-12 23:28,瀏覽次數:1183, 標簽:MATLAB果蠅優化算法--Matlab...
發表于 2021-08-17 07:28? 0次閱讀
果蠅優化算法MATLAB實現

使用Verilog HDL設計實現Cordic算...

任何適合產品實現的算法,都是將簡易實現作為第一目標。CORDIC算法是建立在適應性濾波器、FFT、解....
發表于 2021-08-16 11:21? 127次閱讀
使用Verilog HDL設計實現Cordic算...

淺談Verilog復雜時序邏輯電路設計實踐

筆試時也很常見。 [例1] 一個簡單的狀態機設計--序列檢測器 序列檢測器是時序數字電路設計中經典的....
發表于 2021-08-10 16:33? 2268次閱讀
淺談Verilog復雜時序邏輯電路設計實踐

基于verilog的浮點乘法器實現

好久不見,甚是想念。在后臺看到好多朋友私信我各種問題,其中想白piao代碼的居多,為了回饋大家,今天....
發表于 2021-08-10 16:29? 151次閱讀
基于verilog的浮點乘法器實現

RISC處理器在Verilog中實現并使用 Xi...

RISC 處理器是基于其指令集和哈佛型數據通路結構設計的。然后,RISC 處理器在Verilog 中....
發表于 2021-08-10 16:22? 168次閱讀
RISC處理器在Verilog中實現并使用 Xi...

非局部平均濾波——NL-Menas的算法理論

“ 雙邊濾波采用了距離與相似度因素,進行權重的計算,但在相似度計算時,僅僅是通過像素間的均方差(相似....
發表于 2021-08-10 14:45? 142次閱讀
非局部平均濾波——NL-Menas的算法理論

如何用FPGA并行高速運算實現實時的引導濾波算法

前面一篇文章中,已經詳細的分析了引導濾波的理論,公式的推導,以及和雙邊濾波的對比分析,即在邊緣的處理....
發表于 2021-08-10 14:27? 206次閱讀
如何用FPGA并行高速運算實現實時的引導濾波算法

道術之間:人文社科教師為什么要學習AI 這是道與...

我們的讀者,應該對在人文社科領域中的AI技術并不陌生。 幾年來,我們報道過AI應用于古文字識別、考古....
發表于 2021-08-09 19:06? 1924次閱讀
道術之間:人文社科教師為什么要學習AI 這是道與...

物聯網加持后煤炭時代 數字貨艙一個會說話的箱子

作家巴巴拉·弗里茲在《coal:A human History》一書中曾寫道,煤炭被視作人類進步的縮....
發表于 2021-08-06 15:13? 1270次閱讀
物聯網加持后煤炭時代  數字貨艙一個會說話的箱子

目前的AI就是“暴力計算”,那未來呢?

人工智能(AI)技術在這幾年發展非常迅速,但真正的落地項目就目前來說還不多,應用得最多的可能就是圖像....
發表于 2021-07-30 14:17? 2663次閱讀
目前的AI就是“暴力計算”,那未來呢?

Verilog如何實現一階sigma_delta...

一階 sigma-delta 調制器類似于 PWM,但如果需要對其進行濾波,則具有更好的頻率響應,因....
發表于 2021-07-23 10:33? 257次閱讀
Verilog如何實現一階sigma_delta...

投資8億!廣汽和華為建立合資子公司進軍智能汽車S...

7月9日,廣汽集團發布公告,同意其全資子公司廣汽埃安新能源汽車有限公司與華為AH8車型)項目的實施。....
發表于 2021-07-13 09:58? 4097次閱讀
投資8億!廣汽和華為建立合資子公司進軍智能汽車S...

海產寄生蟲輪廓檢測方案的作用是什么

為什么要嚴格檢查海產寄生蟲? 由于食用未煮熟的海產品,每年有數千人感染線蟲幼蟲或假線蟲幼蟲,感染者臨....
發表于 2021-07-07 10:24? 29次閱讀
海產寄生蟲輪廓檢測方案的作用是什么

電解電容正負極圖解

電解電容主要有兩個作用,一個是濾波作用,另一個是耦合作用,它的原理也比較簡單,一般都是由金屬箔(鋁/....
發表于 2021-07-07 09:23? 994次閱讀
電解電容正負極圖解

點亮智能科技采用萊迪思CrossLink-NX ...

目前對于不同環境和應用場景需求,高清圖像處理和視頻接口也非常之多,這其中必然涉及到一些接口的轉換和信....
發表于 2021-07-05 17:38? 3063次閱讀
點亮智能科技采用萊迪思CrossLink-NX ...

大學應該更偏向技術還是算法和數據結構這類?

很多時候我們需要的算法都被封裝到編程語言的基礎庫里了,以至于很多同學會覺得算法離我們太遠,其實不是的....
發表于 2021-07-04 15:11? 346次閱讀
大學應該更偏向技術還是算法和數據結構這類?

隊列實現棧原理是什么?隊列實現棧方案有哪幾種?

棧是一種后進先出的數據結構,而隊列是一種先進先出的數據結構,兩者原理不難理解,使用也簡單。
發表于 2021-07-04 13:28? 289次閱讀
隊列實現棧原理是什么?隊列實現棧方案有哪幾種?

Verilog HDL提供了哪兩種類型的顯式時序...

Verilog HDL提供了兩種類型的顯式時序控制:一種是延遲控制,即定義執行語句的延遲時間;另一種....
發表于 2021-07-02 10:52? 258次閱讀
Verilog HDL提供了哪兩種類型的顯式時序...
狠狠cao在线视频观看_青青青视频在线观看_免费的三级黄网站