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

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

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

FPGA圖像處理之CLAHE算法

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

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

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

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

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

因為我們要對這64塊都做直方圖均衡化,所以先定義一個直方圖均衡化的計算函數(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)用這個直方圖均衡化的代碼。

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實現(xià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來選擇寫入到哪一個ram里面。

通過i和j來控制最后的block_num,其中i表示列方向的分塊索引,j表示行方向的分塊索引,因為我們每一列都是分為了8塊,所以i的索引需要乘以8,這個通過后面補3個0來實現(xiàn)。

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

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

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

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

審核編輯:湯梓紅

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

    1630

    文章

    21772

    瀏覽量

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

    關(guān)注

    27

    文章

    1296

    瀏覽量

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

    關(guān)注

    23

    文章

    4624

    瀏覽量

    93110

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

    對于最后一種情況,也就是位于中間白色區(qū)域的點,他需要進行雙線性插值??梢钥吹秸麄€點位于第四個block,所以他需要在第一個,第二個,第四個和第五個block上分別計算直方圖均衡化的結(jié)果,和相應(yīng)的權(quán)重。
    發(fā)表于 01-21 10:51 ?1947次閱讀
    <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īng)驗圖像處理

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

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

    。這種并行處理能力使得FPGA處理大規(guī)模圖像數(shù)據(jù)時表現(xiàn)出色,能夠?qū)崟r完成復(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

    實時圖像處理FPGA芯片怎么選擇

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    FPGA圖像處理算法有哪些

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

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

    在介紹CLAHE算法之前必須要先提一下直方圖均衡化,直方圖均衡化算法是一種常見的圖像增強算法,可以讓像素的亮度分配的更加均勻從而獲得一個比較
    的頭像 發(fā)表于 01-02 13:32 ?1787次閱讀
    <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>介紹(一)