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

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

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

FPGA圖像處理之CLAHE算法

FPGA開源工坊 ? 來源:FPGA開源工坊 ? 2024-01-04 12:23 ? 次閱讀

FPGA圖像處理--CLAHE算法(一)中介紹了為啥要用CLAHE算法來做圖像增強(qiáng)。

在這一篇里面就介紹一下CLAHE的第一步處理:分塊。

通常來說會(huì)將圖片分為8*8的64塊,然后分別對這64塊進(jìn)行直方圖均衡化。

如下所示(手畫的不均勻)。分為8*8這也是對常見的視頻分辨率可以被8整除,這樣也不用考慮邊界不均勻了。

因?yàn)槲覀円獙@64塊都做直方圖均衡化,所以先定義一個(gè)直方圖均衡化的計(jì)算函數(shù)。

def hist(img):
    h, w = img.shape
    n = np.zeros(256, np.uint32)
    for i in range(h):
        for j in range(w):
            n[img[i][j]] = n[img[i][j]] + 1


    pk = n
    sk = np.zeros(256, np.float32)
    sk[0] = pk[0]
    for i in range(1, 256):
        sk[i] = sk[i - 1] + pk[i]
    sk = sk / (h * w)
    sk = sk * 255
    sk = np.around(sk)
    return sk

之后分塊調(diào)用這個(gè)直方圖均衡化的代碼。

def calc_ahe(img, block):
    h, w = img.shape
    he = np.zeros((h, w), np.uint8)
    for i in range(block):
        for j in range(block):
            sk = hist(img[i * (h // block): (i + 1) * (h // block), j * (w // block):(j + 1) * (w // block)])
            he[i * (h // block): (i + 1) * (h // block), j * (w // block):(j + 1) * (w // block)] = remap(
                img[i * (h // block): (i + 1) * (h // block), j * (w // block):(j + 1) * (w // block)], sk)
    return he

得到的效果如下:

可以看到每一塊都是被分割了出來。

在RTL實(shí)現(xiàn)的時(shí)候也是要對這些分塊進(jìn)行存儲,定義下面的存儲器:

genvar i;
generate
    for(i = 0; i < BLOCK_NUM_POW2; i = i + 1) begin : LOOP_MEM
        tpram #(
            .DP    (256),
            .WD    (16 )
        ) tpram_inst(
            .clk   (clk     ),
            .wdata (wdata[i]),
            .wen   (wen[i]  ),
            .waddr (waddr[i]),
            .ren   (ren[i]  ),
            .raddr (raddr[i]),
            .rdata (rdata[i])
        );
    end
endgenerate

a69db230-aab6-11ee-8b88-92fbcf53809c.png

也是考慮block_num來選擇寫入到哪一個(gè)ram里面。

通過i和j來控制最后的block_num,其中i表示列方向的分塊索引,j表示行方向的分塊索引,因?yàn)槲覀兠恳涣卸际欠譃榱?塊,所以i的索引需要乘以8,這個(gè)通過后面補(bǔ)3個(gè)0來實(shí)現(xiàn)。

a6b662d0-aab6-11ee-8b88-92fbcf53809c.png

最后通過一系列選擇來控制RAM的讀寫信號。

a6c5b2bc-aab6-11ee-8b88-92fbcf53809c.png

這樣就能完成CLAHE中分塊進(jìn)行直方圖均衡化的操作。這個(gè)主要難點(diǎn)是分塊,直方圖均衡化網(wǎng)上教程很多就不再贅述了。

審核編輯:湯梓紅

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

    關(guān)注

    1640

    文章

    21910

    瀏覽量

    611590
  • 圖像處理
    +關(guān)注

    關(guān)注

    27

    文章

    1320

    瀏覽量

    57480
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4678

    瀏覽量

    94295

原文標(biāo)題:FPGA圖像處理--CLAHE算法(二)

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

收藏 0人收藏

    評論

    相關(guān)推薦

    FPGA圖像處理CLAHE算法的線性差值

    對于最后一種情況,也就是位于中間白色區(qū)域的點(diǎn),他需要進(jìn)行雙線性插值。可以看到整個(gè)點(diǎn)位于第四個(gè)block,所以他需要在第一個(gè),第二個(gè),第四個(gè)和第五個(gè)block上分別計(jì)算直方圖均衡化的結(jié)果,和相應(yīng)的權(quán)重。
    發(fā)表于 01-21 10:51 ?2376次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b><b class='flag-5'>之</b><b class='flag-5'>CLAHE</b><b class='flag-5'>算法</b>的線性差值

    FPGA設(shè)計(jì)經(jīng)驗(yàn)圖像處理

    今天和大俠簡單聊一聊基于FPGA圖像處理,之前也和各位大俠聊過相關(guān)的圖像處理,這里面也超鏈接了幾篇,具體如下:
    發(fā)表于 06-12 16:26

    FPGA圖像處理領(lǐng)域的優(yōu)勢有哪些?

    。這種并行處理能力使得FPGA處理大規(guī)模圖像數(shù)據(jù)時(shí)表現(xiàn)出色,能夠?qū)崟r(shí)完成復(fù)雜的圖像處理算法。
    發(fā)表于 10-09 14:36

    FPGA圖像與視頻處理培訓(xùn)

     FPGA圖像與視頻處理培訓(xùn)課程目標(biāo):  1、深入了解JPEG標(biāo)準(zhǔn)和H.264標(biāo)準(zhǔn)協(xié)議;  2、掌握FPGA圖像
    發(fā)表于 07-16 14:05

    實(shí)時(shí)圖像處理FPGA芯片怎么選擇

    本人想做數(shù)字圖像處理方面的課題,不知道DSP和FPGA的器件怎么選擇,希望有經(jīng)驗(yàn)的大神給點(diǎn)建議,我做的這個(gè)課題是用FPGA和DSP處理
    發(fā)表于 08-06 10:54

    一種基于FPGA的實(shí)時(shí)視頻圖像處理算法研究與實(shí)現(xiàn)

    摘要為有效提高視頻監(jiān)控應(yīng)用領(lǐng)域中多屏幕畫面顯示的清晰度、分辨度等問題,提出了一種基于FPGA的實(shí)時(shí)視頻圖像處理算法。文中介紹了系統(tǒng)的整體結(jié)構(gòu),然后針對FPGA模塊介紹了視頻
    發(fā)表于 06-28 07:06

    薦讀:FPGA設(shè)計(jì)經(jīng)驗(yàn)圖像處理

    今天和大俠簡單聊一聊基于FPGA圖像處理,之前也和各位大俠聊過相關(guān)的圖像處理,這里面也超鏈接了幾篇,具體如下:
    發(fā)表于 06-08 15:55

    基于DSP和FPGA的通用圖像處理平臺設(shè)計(jì)

    設(shè)計(jì)一種基于DSP和FPGA架構(gòu)的通用圖像處理平臺,運(yùn)用FPGA實(shí)現(xiàn)微處理器接口設(shè)計(jì),并對圖像數(shù)
    發(fā)表于 12-25 17:06 ?61次下載

    ECT圖像重建算法FPGA實(shí)現(xiàn)

    ECT圖像重建算法FPGA實(shí)現(xiàn) ECT圖像重建算法FPGA實(shí)現(xiàn)
    發(fā)表于 11-19 14:59 ?2次下載

    基于FPGA的紅外圖像處理系統(tǒng)及算法設(shè)計(jì)

    本文在研究紅外焦平面陣列非均勻性的特點(diǎn)和成因后,首先設(shè)計(jì)了紅外圖像實(shí)時(shí)處理的硬件平臺。本硬件平臺以FPGA為核心處理器,外圍芯片主要有存儲器和D/A等。該平臺為紅外探測器提供驅(qū)動(dòng)信號,
    發(fā)表于 05-17 14:29 ?5次下載

    如何使用FPGA實(shí)現(xiàn)圖像的中值濾波算法

    圖像濾波是圖像預(yù)處理過程中葦要的組成部分,而基于FPGA的濾波算法相對軟件算法而言具有高度的并行
    發(fā)表于 04-01 11:21 ?42次下載
    如何使用<b class='flag-5'>FPGA</b>實(shí)現(xiàn)<b class='flag-5'>圖像</b>的中值濾波<b class='flag-5'>算法</b>

    FPGA學(xué)習(xí)-基于FPGA圖像處理

    圖像處理系統(tǒng)設(shè)計(jì)注意點(diǎn): 1.將算法開發(fā)和 FPGA 實(shí)現(xiàn)分離 用軟件的圖像處理環(huán)境可以使用大批
    的頭像 發(fā)表于 02-15 16:35 ?1460次閱讀

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

    最近一直在用FPGA調(diào)圖像處理相關(guān)的算法,主要是集中在圖像增強(qiáng)和增晰方面。
    發(fā)表于 06-29 09:23 ?1271次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>圖像</b><b class='flag-5'>處理</b><b class='flag-5'>之</b>直方圖均衡

    FPGA圖像處理算法有哪些

    早之前的朋友知道我發(fā)過一個(gè)用chatgpt分析出來的 FPGA圖像處理的知識樹,里面包含了從色域,鏡頭,接口和算法。然后我就發(fā)現(xiàn)這個(gè)算法部分
    的頭像 發(fā)表于 09-12 09:59 ?1220次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>圖像</b><b class='flag-5'>處理算法</b>有哪些

    FPGA圖像處理-CLAHE算法介紹(一)

    在介紹CLAHE算法之前必須要先提一下直方圖均衡化,直方圖均衡化算法是一種常見的圖像增強(qiáng)算法,可以讓像素的亮度分配的更加均勻從而獲得一個(gè)比較
    的頭像 發(fā)表于 01-02 13:32 ?2115次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>-<b class='flag-5'>CLAHE</b><b class='flag-5'>算法</b>介紹(一)

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品