FPGA图像处理之CLAHE算法

2024-01-04

在FPGA图像处理--CLAHE算法(一)中介绍了为啥要用CLAHE算法来做图像增强。
在这一篇里面就介绍一下CLAHE的第一步处理:分块。
通常来说会将图片分为8*8的64块,然后分别对这64块进行直方图均衡化。
如下所示(手画的不均匀)。分为8*8这也是对常见的视频分辨率可以被8整除,这样也不用考虑边界不均匀了。
因为我们要对这64块都做直方图均衡化,所以先定义一个直方图均衡化的计算函数。
之后分块调用这个直方图均衡化的代码。
得到的效果如下>
可以看到每一块都是被分割了出来。
在RTL实现的时候也是要对这些分块进行存储,定义下面的存储器>
FPGA图像处理之CLAHE算法 (https://ic.work/) 可编辑器件 第1张
也是考虑block_num来选择写入到哪一个ram里面。
通过i和j来控制最后的block_num,其中i表示列方向的分块索引,j表示行方向的分块索引,因为我们每一列都是分为了8块,所以i的索引需要乘以8,这个通过后面补3个0来实现。
FPGA图像处理之CLAHE算法 (https://ic.work/) 可编辑器件 第2张
最后通过一系列选择来控制RAM的读写信号。
FPGA图像处理之CLAHE算法 (https://ic.work/) 可编辑器件 第3张
这样就能完成CLAHE中分块进行直方图均衡化的操作。这个主要难点是分块,直方图均衡化网上教程很多就不再赘述了。

文章推荐

相关推荐