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

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

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

基于FPGA灰度直方圖線性拉伸

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-06-08 10:15 ? 次閱讀

直方圖線性拉伸相對于直方圖均衡化來說就更好理解一些了,即用線性變化將灰度直方圖較窄的部分拉伸至整個區(qū)間,增強整幅圖像的對比度。

線性拉伸的效果如下圖所示,可以看出圖像對比度有所改善,保留了直方圖基本的輪廓,同時將直方圖范圍拉伸至0~255。

25399d48-e6be-11ec-ba43-dac502259ad0.png

25629914-e6be-11ec-ba43-dac502259ad0.png

圖 1 直方圖拉伸效果圖

算法也比較容易理解,f(x,y)為輸入圖像,得到輸出圖像g(x,y)

25722e56-e6be-11ec-ba43-dac502259ad0.png

其中A和B可以分別定義為圖像的最小灰度值與最大灰度值,即

25945954-e6be-11ec-ba43-dac502259ad0.png

但是實際應(yīng)用中并不會直接采用上述的A和B,這是由于圖像中可能存在噪聲的原因。想象如果圖像中存在幾個純白點(255)和純黑點(0),那么拉伸后的效果就無法達到預(yù)期。

因此我們?nèi)藶榈脑O(shè)定兩個閾值Thr_Min和Thr_Max,拉伸系數(shù)A,B定義如下:

25c7cea6-e6be-11ec-ba43-dac502259ad0.jpg

其中∑H(k)為灰度直方圖累計和。下圖更直觀的表示了A和B的取值,Thr_ Min和Thr_Max是藍色部分的面積。

25f34a18-e6be-11ec-ba43-dac502259ad0.png

圖 2 A,B系數(shù)的定義

系統(tǒng)框架

26ae6b22-e6be-11ec-ba43-dac502259ad0.jpg

圖 3 直方圖線性拉伸系統(tǒng)框架

上圖可以看出,前半部分的直方圖統(tǒng)計電路和上篇均衡化完全一樣,只是對后半部分的電路做了些修改。計算直方圖線性拉伸后的像素值的步驟如下:

1. 統(tǒng)計第一幀圖像的灰度直方圖

2. 計算直方圖累計和

3. 由閾值Thr_Min和Thr_Max算出拉伸系數(shù)A,B

4. 第二幀圖像灰度值帶入公式計算后輸出

和直方圖均衡化一樣,這里我們不考慮幀緩存的問題,也就是前一幀的A,B作為當前幀A,B來使用。

代碼分析

A,B系數(shù)的計算

hist_cnt為計算出的累計和(與直方圖均衡化中的求法一樣),當累計和大于閾值的時候,記錄下此時累計和對應(yīng)的地址out_pixel[8:1](即灰度值),作為我們的拉伸系數(shù)A,B,同時設(shè)置取得系數(shù)標志get_max或get_min為1。最后要在第二幀累計和到來時,清零A,B及get標志。

279244be-e6be-11ec-ba43-dac502259ad0.jpg

2. B-A的計算

取得系數(shù)B后(get_max=1),即可計算出B-A 。

27c76586-e6be-11ec-ba43-dac502259ad0.png

3. f(x,y)-A (第一級流水)

當f(x,y)小于系數(shù)A時,直接令f(x,y)-A=0;當f(x,y)大于系數(shù)B時,直接令f(x,y)-A=B-A。

27ed46ca-e6be-11ec-ba43-dac502259ad0.png

4. [f(x,y)-A ]*255 (第二級流水)

28182ec6-e6be-11ec-ba43-dac502259ad0.png

5.[f(x,y)-A ]*255/(B-A) (第三級流水)

28428c0c-e6be-11ec-ba43-dac502259ad0.png

實驗結(jié)果

28c47960-e6be-11ec-ba43-dac502259ad0.png

290b03bc-e6be-11ec-ba43-dac502259ad0.png

圖 4 原圖 圖 5 閾值為100時處理后的圖像

有沒有覺得這兩幅圖并沒有什么差別,小編也納悶了很久。之前有提到過噪聲可能對直方圖線性拉伸的影響,下面是將閾值Thr_Min調(diào)高至1000后得到的結(jié)果。

2966416e-e6be-11ec-ba43-dac502259ad0.png

圖 6 閾值為1000時處理后的圖像

可以看出直方圖線性拉伸需要人為的調(diào)整閾值的大小,才能達到理想效果。而直方圖均衡化則不需要。

審核編輯 :李倩

聲明:本文內(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)注

    1620

    文章

    21510

    瀏覽量

    598956
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1075

    瀏覽量

    40274
  • 線性
    +關(guān)注

    關(guān)注

    0

    文章

    194

    瀏覽量

    25080

原文標題:基于FPGA灰度直方圖線性拉伸

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于直方圖算法進行FPGA架構(gòu)設(shè)計

    加速。安排如下: 首先基于直方圖算法進行FPGA架構(gòu)設(shè)計,這里主要考慮了如何加速以及FPGA資源的利用兩個因素;最后基于system Verilog搭建一個驗證系統(tǒng)。 FPGA設(shè)計架構(gòu)
    的頭像 發(fā)表于 12-10 16:37 ?2631次閱讀

    一文帶你了解FPGA直方圖操作

    灰度變換等處理過程。 而FPGA對于直方圖處理主要分為以下三種: 我們常見或者聽說的直方圖概念主要指直方圖均衡,這也是最簡單的一種方式,常
    發(fā)表于 01-10 15:07

    圖像自適應(yīng)分段線性拉伸算法的FPGA設(shè)計

    。1 自適應(yīng)線性分段線性灰度拉伸算法首先對紅外圖像做灰度直方圖統(tǒng)計,低信噪比條件下,選取壓縮因
    發(fā)表于 04-27 14:37

    基于FPGA的HDTV視頻圖像灰度直方圖統(tǒng)計算法設(shè)計

    亮度分布特性有力的工具,根據(jù)它的結(jié)果可以進行諸如灰度拉伸、自動對比度、動態(tài)伽馬調(diào)整等操作。圖1 Lena 圖像的灰度直方圖統(tǒng)計FPGA算法統(tǒng)
    發(fā)表于 05-14 12:37

    FPGA圖像處理 直方圖統(tǒng)計并灰度拉伸 然后VGA顯示的問題

    本人目前用FPGA做一個圖像處理并VGA顯示的東西,中間用到直方圖統(tǒng)計并灰度拉伸,使圖像對比度提高?,F(xiàn)在遇到一個問題,取統(tǒng)計的5%和95%的灰度
    發(fā)表于 06-28 09:35

    基于FPGA的圖像直方圖均衡處理

    `基于FPGA的圖像直方圖均衡處理 AT7_Xilinx開發(fā)板(USB3.0+LVDS)資料共享 騰訊鏈接:https://share.weiyun.com/5GQyKKc 百度網(wǎng)盤鏈接:https
    發(fā)表于 07-14 17:26

    如何實現(xiàn)HDTV視頻增強算法中灰度直方圖統(tǒng)計?

    本文介紹了如何在FPGA中利用Block RAM的特殊結(jié)構(gòu)實現(xiàn)HDTV視頻增強算法中灰度直方圖統(tǒng)計。
    發(fā)表于 04-30 07:34

    TI C6000教學(xué)實驗箱操作教程:5-8 直方圖均衡化(LCD顯示)

    是間接對比度增強方法。直方圖拉伸直方圖均衡化是兩種最常見的間接對比度增強方法。直方圖拉伸是通過對比度拉伸直方圖進行調(diào)整,從而“擴大”前景
    發(fā)表于 12-07 14:20

    MATLAB如何實現(xiàn)圖像增強灰度變換直方圖均衡匹配

    在MATLAB數(shù)字圖像處理領(lǐng)域,如何實現(xiàn)空間域圖像增強的灰度變換,以及圖像直方圖的均衡和匹配(配準)?本文通過大量的圖片增強案例,從圖像的顯示效果和灰度直方圖分析入手,通過自編程,詳細
    發(fā)表于 01-13 21:56 ?1w次閱讀
    MATLAB如何實現(xiàn)圖像增強<b class='flag-5'>灰度</b>變換<b class='flag-5'>直方圖</b>均衡匹配

    如何用FPGA的Block RAM性能實現(xiàn)HDTV視頻增強算法中灰度直方圖統(tǒng)計

    本文介紹了如何在FPGA 中利用Block RAM 的特殊結(jié)構(gòu)實現(xiàn)HDTV視頻增強算法中灰度直方圖統(tǒng)計。
    的頭像 發(fā)表于 07-10 08:10 ?2759次閱讀

    如何使用FPGA實現(xiàn)圖像灰度拉伸算法

    為了調(diào)整圖像數(shù)據(jù)灰度,介紹了一種圖像灰度拉伸算法的FPGA實現(xiàn)方法,并針對FPGA的特點對算法的實現(xiàn)方法進行了研究,從而解決了其在導(dǎo)引系統(tǒng)
    發(fā)表于 04-01 14:14 ?10次下載
    如何使用<b class='flag-5'>FPGA</b>實現(xiàn)圖像<b class='flag-5'>灰度</b>級<b class='flag-5'>拉伸</b>算法

    如何使用FPGA實現(xiàn)圖像灰度拉伸算法

    為了調(diào)整圖像數(shù)據(jù)灰度,介紹了一種圖像灰度拉伸算法的FPGA實現(xiàn)方法,并針對FPGA的特點對算法的實現(xiàn)方法進行了研究,從而解決了其在導(dǎo)引系統(tǒng)
    發(fā)表于 04-01 14:14 ?1次下載
    如何使用<b class='flag-5'>FPGA</b>實現(xiàn)圖像<b class='flag-5'>灰度</b>級<b class='flag-5'>拉伸</b>算法

    剖析FPGA灰度直方圖線性拉伸

    純工程師社群 直方圖線性拉伸相對于直方圖均衡化來說就更好理解一些了,即用線性變化將灰度直方圖較窄
    的頭像 發(fā)表于 07-02 10:37 ?2916次閱讀
    剖析<b class='flag-5'>FPGA</b><b class='flag-5'>灰度</b><b class='flag-5'>直方圖線性</b><b class='flag-5'>拉伸</b>

    基于FPGA直方圖線性拉伸的解決方案與對比分析

    但是實際應(yīng)用中并不會直接采用上述的A和B,這是由于圖像中可能存在噪聲的原因。想象如果圖像中存在幾個純白點(255)和純黑點(0),那么拉伸后的效果就無法達到預(yù)期。
    的頭像 發(fā)表于 07-02 10:38 ?2076次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>直方圖線性</b><b class='flag-5'>拉伸</b>的解決方案與對比分析

    基于FPGA直方圖拉伸方案

    在視頻處理中,為了能夠?qū)崟r調(diào)節(jié)圖像的對比對,通常需要對直方圖進行拉伸處理。
    的頭像 發(fā)表于 05-04 09:38 ?1014次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>直方圖拉伸</b>方案