0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

形態(tài)學(xué)濾波算法的FPGA硬件實現(xiàn)

FPGA自習(xí)室 ? 來源:FPGA自習(xí)室 ? 作者:FPGA自習(xí)室 ? 2021-03-03 10:20 ? 次閱讀

一、背景介紹

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

二、形態(tài)學(xué)濾波原理

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

若采用窗口實現(xiàn)腐蝕操作,如圖2.1所示:

圖2.1腐蝕效果示意圖

腐蝕的作用:在形態(tài)學(xué)中的腐蝕可以去除圖像中的物體邊界點,清除圖像中比結(jié)構(gòu)元素小的毛刺或者小突起,此外,結(jié)構(gòu)元素越大,腐蝕的面積就越大。所以,可以使用腐蝕運算操作小區(qū)域的非目標(biāo)區(qū)域區(qū)分。

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

若采用窗口實現(xiàn)膨脹操作,如圖2.2所示:

圖2.2膨脹效果示意圖

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

三、FPGA硬件實現(xiàn)

形態(tài)學(xué)濾波算法的FPGA硬件實現(xiàn)原理圖,如下圖所示。算法的輸入輸出接口信號采用標(biāo)準(zhǔn)的 VGA時序接口,即行場信號、數(shù)據(jù)和數(shù)據(jù)使能信號。算法模板輸入?yún)?shù)主要有兩個,Win_SIZE 表示窗口大小,WORK_MODE 表示工作在腐蝕還是膨脹模式,根據(jù)需要配置自己想要的模板大小和工作模式。

由于行緩存是基于RAM的實現(xiàn)的,本文設(shè)計的ram的規(guī)格大小是為2048x15,

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

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

四、仿真驗證

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

3x3腐蝕仿真結(jié)果:

9x9腐蝕仿真結(jié)果:

5x5膨脹仿真結(jié)果:

15x15膨脹仿真結(jié)果:

原文標(biāo)題:基于Verilog的“自適應(yīng)”形態(tài)學(xué)濾波算法實現(xiàn)

文章出處:【微信公眾號:FPGA自習(xí)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603420
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110101
  • 濾波算法
    +關(guān)注

    關(guān)注

    2

    文章

    89

    瀏覽量

    13727

原文標(biāo)題:基于Verilog的“自適應(yīng)”形態(tài)學(xué)濾波算法實現(xiàn)

文章出處:【微信號:FPGA_Study,微信公眾號:FPGA自習(xí)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    圖像高斯濾波的原理及FPGA實現(xiàn)思路

    1.概念 高斯分布 圖像濾波之高斯濾波介紹 圖像處理算法|高斯濾波 高斯濾波(Gaussian filter)包含很多種,包括低通、高通、帶
    的頭像 發(fā)表于 12-07 09:12 ?275次閱讀
    圖像高斯<b class='flag-5'>濾波</b>的原理及<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>思路

    【「從算法到電路—數(shù)字芯片算法的電路實現(xiàn)」閱讀體驗】+介紹基礎(chǔ)硬件算法模塊

    作為嵌入式開發(fā)者往往比較關(guān)注硬件和軟件的協(xié)調(diào)。本書介紹了除法器,信號發(fā)生器,濾波器,分頻器等基本算法的電路實現(xiàn),雖然都是基礎(chǔ)內(nèi)容,但是也是最常用到的基本模塊。 隨著逆全球化趨勢的出現(xiàn)
    發(fā)表于 11-21 17:05

    【「從算法到電路—數(shù)字芯片算法的電路實現(xiàn)」閱讀體驗】+一本介紹基礎(chǔ)硬件算法模塊實現(xiàn)的好書

    作為嵌入式開發(fā)者往往比較關(guān)注硬件和軟件的協(xié)調(diào)。本書介紹了除法器,信號發(fā)生器,濾波器,分頻器等基本算法的電路實現(xiàn),雖然都是基礎(chǔ)內(nèi)容,但是也是最常用到的基本模塊,本書的內(nèi)容比較對本人胃口。
    發(fā)表于 11-20 13:42

    基于FPGA實現(xiàn)FIR數(shù)字濾波

    。隨著現(xiàn)代數(shù)字通信系統(tǒng)對于高精度、高處理速度的需求,越來越多的研究轉(zhuǎn)向采用FPGA實現(xiàn)FIR濾波器。而對于FIR濾波器要充分考慮其資源與運行速度的合理優(yōu)化,各種不同的FIR
    的頭像 發(fā)表于 11-05 16:26 ?597次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>FIR數(shù)字<b class='flag-5'>濾波</b>器

    STM32的ADC采樣及各式濾波算法實現(xiàn)

    本文為手把手教學(xué)ADC采樣及各式濾波算法的教程,本教程的MCU采用STM32F103ZET6。以HAL庫的ADC采樣函數(shù)為基礎(chǔ)進行教學(xué),通過各式常見濾波的實驗結(jié)果進行分析對比,搭配VOFA+工具直觀的展示
    的頭像 發(fā)表于 10-28 10:51 ?2208次閱讀
    STM32的ADC采樣及各式<b class='flag-5'>濾波</b><b class='flag-5'>算法</b><b class='flag-5'>實現(xiàn)</b>

    如何用FPGA實現(xiàn)一個通信系統(tǒng)的發(fā)射端接收機?

    和技術(shù),包括硬件并行和算法并行。 硬件優(yōu)化技術(shù):學(xué)習(xí)如何在硬件實現(xiàn)中進行資源優(yōu)化、性能提升和功耗降低。 特定的 NPU 架構(gòu)研究:分析現(xiàn)有的
    發(fā)表于 09-10 19:15

    為什么FPGA屬于硬件,還需要搞算法

    交流學(xué)習(xí),共同進步。 交流問題(一) Q:為什么FPGA屬于硬件,還需要搞算法? 剛?cè)腴T準(zhǔn)備學(xué)fpga但一開始
    發(fā)表于 09-09 16:54

    FPGA實現(xiàn)什么樣的算法?

    FPGA功能如此強大,請問用FPGA實現(xiàn)或者比較適合實現(xiàn)什么樣的算法?
    發(fā)表于 05-26 20:18

    基于深度學(xué)習(xí)的缺陷檢測方案

    圖像預(yù)處理通常包括直方圖均衡化、濾波去噪、灰度二值化、再次濾波幾部分,以得到前后景分離的簡單化圖像信息;隨后利用數(shù)學(xué)形態(tài)學(xué)、傅里葉變換、Gabor 變換等算法以及機器學(xué)習(xí)模型完成缺陷的
    發(fā)表于 04-23 17:23 ?892次閱讀
    基于深度學(xué)習(xí)的缺陷檢測方案

    fpga硬件還是軟件

    FPGA(現(xiàn)場可編程門陣列)本質(zhì)上是一種硬件設(shè)備,但它在功能實現(xiàn)上結(jié)合了硬件和軟件的特性。
    的頭像 發(fā)表于 03-27 14:14 ?938次閱讀

    基于多速率DA的根升余弦濾波器的FPGA實現(xiàn)

    Add Cell,MAC)結(jié)構(gòu),設(shè)計方便,只需要乘法器、加法器和移位寄存器即可實現(xiàn),但是在FPGA實現(xiàn)硬件乘法器十分耗費資源。特別是當(dāng)濾波
    發(fā)表于 03-25 14:21

    fpga開發(fā)是什么意思

    配置內(nèi)部的邏輯門和連接關(guān)系來實現(xiàn)特定的電路功能。因此,FPGA開發(fā)實質(zhì)上是一種將軟件算法硬件電路轉(zhuǎn)化為可編程邏輯結(jié)構(gòu)的過程,以實現(xiàn)各種復(fù)雜
    的頭像 發(fā)表于 03-15 14:28 ?1192次閱讀

    fpga硬件還是軟件

    FPGA(現(xiàn)場可編程門陣列)屬于硬件設(shè)備,而不是軟件。它是一種可編程的硬件設(shè)備,由大量的邏輯單元、存儲單元和互連資源組成,能夠實現(xiàn)復(fù)雜的數(shù)字電路和系統(tǒng)設(shè)計。
    的頭像 發(fā)表于 03-14 17:08 ?1891次閱讀

    卡爾曼濾波算法c語言實現(xiàn)方法

    卡爾曼濾波(Kalman Filter)是一種用于估計狀態(tài)的算法,最初由R.E. Kalman在1960年提出。它是一種線性高斯濾波器,常用于處理包含誤差噪聲的動態(tài)系統(tǒng)??柭?b class='flag-5'>濾波
    的頭像 發(fā)表于 01-17 10:51 ?2992次閱讀

    怎么用FPGA算法 如何在FPGA實現(xiàn)最大公約數(shù)算法

    FPGA算法的優(yōu)點在于它們可以提供高度的定制化和靈活性,使得算法可以根據(jù)實際需求進行優(yōu)化和調(diào)整。此外,FPGA還可以實現(xiàn)
    的頭像 發(fā)表于 01-15 16:03 ?2320次閱讀