全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

FPGA图像处理之CLAHE算法

时间:2024-01-04 12:23

人气:

作者:admin

标签:

导读:在FPGA图像处理--CLAHE算法(一)中介绍了为啥要用CLAHE算法来做图像增强。...

FPGA图像处理--CLAHE算法(一)中介绍了为啥要用CLAHE算法来做图像增强。

在这一篇里面就介绍一下CLAHE的第一步处理:分块。

通常来说会将图片分为8*8的64块,然后分别对这64块进行直方图均衡化。

如下所示(手画的不均匀)。分为8*8这也是对常见的视频分辨率可以被8整除,这样也不用考虑边界不均匀了。

因为我们要对这64块都做直方图均衡化,所以先定义一个直方图均衡化的计算函数。

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

之后分块调用这个直方图均衡化的代码。

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实现的时候也是要对这些分块进行存储,定义下面的存储器:

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来实现。

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

最后通过一系列选择来控制RAM的读写信号

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

这样就能完成CLAHE中分块进行直方图均衡化的操作。这个主要难点是分块,直方图均衡化网上教程很多就不再赘述了。

审核编辑:汤梓红

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信