0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

FPGA开源工坊 来源:FPGA开源工坊 2024-01-05 13:44 次阅读

在这一篇里面介绍一下CLAHE算法的第二步对比度限制。

这个过程很简单,分为下面几个步骤。

计算出来限制的阈值

将统计好的直方图数据限制在0到阈值范围内。也就是将大于阈值的直方图数据减去阈值,并将差值累计起来。

将累计的差值平均分给每个灰度。

来看一下参考的Python代码:

def cl_hist(img, clip):
    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


    t = 0
    for i in range(256):
        if n[i] > clip:
            t += n[i] - clip
            n[i] = clip
    t = t / 256
    n = n + t
    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

这个和之前的直方图统计就多了中间的步骤,也就是下面这一段代码:

    t = 0
    for i in range(256):
        if n[i] > clip:
            t += n[i] - clip
            n[i] = clip
    t = t / 256
    n = n + t

就是遍历256个灰度的统计值,将大于阈值的灰度统计值就设置为阈值,并将两者的差值进行累加。最后将总的差值除以256,将最后的结果累加到每一个灰度的统计值上面。

来看一下最后的效果:

87c54c5a-ab7f-11ee-8b88-92fbcf53809c.png

可以看到相对于没有进行限制对比度的效果要好很多。

下面这幅图是没有限制对比度阈值的结果:

87dda7a0-ab7f-11ee-8b88-92fbcf53809c.png

那么这个阈值要怎么计算呢:

一般来说我们采取这样的方法来计算阈值,也就是通过图像的大小,分块的多少,和clip_limit 的值来计算出来。一般图像大小,和分块多少是不变的,也就是说可以通过clip_limit的值来调整效果。

h, w = img.shape
block = 8
clip_limit = 2
clip = clip_limit * (h * w / (block * block) / 256)
clip = round(clip)

最后来看一下Verilog的实现,可以通过下面的代码来实现对比度限制的功能。

882f0d98-ab7f-11ee-8b88-92fbcf53809c.png






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21665

    浏览量

    601765
  • 图像处理
    +关注

    关注

    27

    文章

    1281

    浏览量

    56636
  • python
    +关注

    关注

    56

    文章

    4781

    浏览量

    84446

原文标题:FPGA图像处理--CLAHE算法(三)

文章出处:【微信号:FPGA开源工坊,微信公众号:FPGA开源工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA图像处理CLAHE算法

    FPGA图像处理--CLAHE算法(一)中介绍了为啥要用CLAHE
    的头像 发表于 01-04 12:23 2396次阅读
    <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>

    FPGA设计经验之图像处理

    、最小值排列; 第二步:提取出最大值的最小值,中间值的中间值,最小值的最大值; 第三步:将第二步提取出来的个数进行排序,中间值即我们要求的中间值。 6.
    发表于 06-12 16:26

    关于IMAQdx获取的图像调节亮度对比度

    本人新手,对IMAQdx驱动研究得不够,想问问通过这个模块获取的图像怎样修改一下参数,比如调节亮度对比度什么的,烦请高手解答,不胜感激
    发表于 05-08 12:30

    张工教你FPGA图像处理技术

    到极值效果会更好。  直方图操作。使用直方图的图像处理有两个相关的主要步骤。第一是建立直方图,第二步是从直方图中提取数据并用它来处理
    发表于 11-05 09:50

    FPGA图像处理技术,你知道多少?

    有效位并且忽略任何会导致值超出范围的溢出位。通常还需要进行饱和或者裁剪到极值效果会更好。  直方图操作。使用直方图的图像处理有两个相关的主要步骤。第一是建立直方图,第二步是从直方图中
    发表于 03-20 11:22

    FPGA图像处理技术,你知道多少?

    有效位并且忽略任何会导致值超出范围的溢出位。通常还需要进行饱和或者裁剪到极值效果会更好。  直方图操作。使用直方图的图像处理有两个相关的主要步骤。第一是建立直方图,第二步是从直方图中
    发表于 03-20 11:22

    FPGA图像处理技术,你知道多少?

    位并且忽略任何会导致值超出范围的溢出位。通常还需要进行饱和或者裁剪到极值效果会更好。  直方图操作。使用直方图的图像处理有两个相关的主要步骤。第一是建立直方图,第二步是从直方图中提取
    发表于 04-21 14:25

    怎么设计图像自适应分段线性拉伸算法FPGA

    由于红外图像的成像机理以及红外成像自身的原因,红外图像对比度低、图像较模糊、噪声大等特点。因此抑止噪声,提高图像信噪比,以及调整红外
    发表于 08-16 07:10

    【干货】基于FPGA图像处理图像增强)之直方图均衡

    ,在整幅图像中出现的次数。% [ 第二步 ] 统计每个像素值出现的概率, 得到概率直方图T = zeros(1, 256);T = double(T); count = double(count
    发表于 12-08 09:40

    视觉对比度分辨率补偿的底层图像挖掘

    介绍了用于底层图像挖掘的视觉对比度分辨率补偿的方法。由于人类视觉对比度分辨率限制,不能清楚分辨在微光(暗视觉)环境下获取的图像。用视觉
    发表于 12-15 15:00 26次下载
    视觉<b class='flag-5'>对比度</b>分辨率补偿的底层<b class='flag-5'>图像</b>挖掘

    基于对比度阈值的改进SIFT算法

    为了提高基于SIFT(Scale Invariant Feature Transform)图像匹配算法对于图像对比度变化的鲁棒性和算法效率,
    发表于 10-26 15:11 0次下载

    TI推出全新图像处理算法套件,旨在提升图像亮度和对比度

    德州仪器DLP®产品部门首次展示了全新图像处理算法套件IntelliBright™,该套件旨在智能地提升图像亮度和对比度,同时使功耗最小化。IntelliBright将能帮助提升未来各
    发表于 02-26 08:58 1193次阅读

    如何使用非下采样Shearlet变换与模糊对比度提高图像质量

    图像经NSST分解成一个低频分量和若干个高频分量;然后对低频分量进行线性增强以提高整体对比度,对高频分量采用阈值法进行增强以去除图像中的噪声;接着对处理后的两部分分量进行NSST反变换
    发表于 01-03 14:50 1次下载
    如何使用非下采样Shearlet变换与模糊<b class='flag-5'>对比度</b>提高<b class='flag-5'>图像</b>质量

    关于指数对比度增强FPGA实现

    对比度增强是个广泛的话题,前文中关于直方图均衡的方法,其实就是一种对比度增强。而对比度增强,就是提高明暗之间的差异,从而达到提高图像对比度
    的头像 发表于 03-16 11:46 2211次阅读

    FPGA图像处理-CLAHE算法介绍(一)

    在介绍CLAHE算法之前必须要先提一下直方图均衡化,直方图均衡化算法是一种常见的图像增强算法,可以让像素的亮度分配的更加均匀从而获得一个比较
    的头像 发表于 01-02 13:32 1677次阅读
    <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>介绍(一)