FPGA图像处理-CLAHE算法的第二步对比度限制(三)

2024-01-05

在这一篇里面介绍一下CLAHE算法的第二步对比度限制。
这个过程很简单,分为下面几个步骤。
计算出来限制的阈值,将统计好的直方图数据限制在0到阈值范围内。也就是将大于阈值的直方图数据减去阈值,并将差值累计起来。
将累计的差值平均分给每个灰度。
来看一下参考的Python代码>
这个和之前的直方图统计就多了中间的步骤,也就是下面这一段代码>
就是遍历256个灰度的统计值,将大于阈值的灰度统计值就设置为阈值,并将两者的差值进行累加。最后将总的差值除以256,将最后的结果累加到每一个灰度的统计值上面。
来看一下最后的效果>
FPGA图像处理-CLAHE算法的第二步对比度限制(三) (https://ic.work/) 可编辑器件 第1张
可以看到相对于没有进行限制对比度的效果要好很多。
下面这幅图是没有限制对比度阈值的结果>
FPGA图像处理-CLAHE算法的第二步对比度限制(三) (https://ic.work/) 可编辑器件 第2张
那么这个阈值要怎么计算呢>
一般来说我们采取这样的方法来计算阈值,也就是通过图像的大小,分块的多少,和clip_limit 的值来计算出来。一般图像大小,和分块多少是不变的,也就是说可以通过clip_limit的值来调整效果。
最后来看一下Verilog的实现,可以通过下面的代码来实现对比度限制的功能。
FPGA图像处理-CLAHE算法的第二步对比度限制(三) (https://ic.work/) 可编辑器件 第3张

文章推荐

相关推荐