opencv-python 限制对比度自适应直方图均衡化(CLAHE)(我的疑问与示例)

限制对比度自适应直方图均衡化的主要计算过程需要先了解一下

https://blog.csdn.net/u013066730/article/details/83000004

这个链接说的很清楚。看了几遍不是很明白具体是怎么操作的,我的理解是:将原来的图像划分为不重叠的几个区域(一般是8*8)然后在每个区域内,限制对比度(如何限制?不明白),并且把一部分特别

 这是原来博文的截图,这个图我不太明白,虽然看他的描述是这么一回事,但是还是有很多疑问,这个图它的纵轴和横轴意义和灰度直方图是一致的吗,如果是,那么阈值a就是一个数量单位了,而集合B中的每一个元素不应该是不同的灰度值吗,那如何将B中的元素赋值为a呢。而且图纸蓝紫色部分,也就是文字描述中“b高于a的部分进行求和”的这个和又该如何求得呢。

说到这里显然是我的理解有偏差了。(恳请大佬纠正)

这里还有另外一篇写的比较简单的博客有提到图中的曲线和阈值的含义,可是还是不清不楚

https://blog.csdn.net/epubit17/article/details/80845677

但是在python中使用这种算法倒是不需要很多技巧。

import cv2 as cv 
import numpy as np

test=cv.imread("test.bmp",-1)
#拆分每个通道
B,G,R = cv.split(test) 
clahe = cv.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
clahe_B = clahe.apply(B)
clahe_G = clahe.apply(G)
clahe_R = clahe.apply(R)
clahe_test = cv.merge((clahe_B,clahe_G,clahe_R))
cv.imshow('clahe_test',clahe_test)
cv.imshow("test",test)
cv.waitKey(0)
cv.destroyAllWindows()

结果,

其中第三张图片是左做全局直方图均衡化的结果,可以明显看到,使用CLAHE方法限制住了对比度(不像图三那么晃眼,同时比图一增强了细节)

有一个说法是CLAHE特别适用于医学红外图像的处理。

最后我觉得就用CLAHE方法和代码中的参数对图片进行处理比较合适和方便。

函数详细情况:

 默认的对比度阈值是40,网格是将原图划分为8*8。对比度阈值还是需要自己根据实际情况调整,如果我这里用默认值得到的图片非常恐怖:

apply就像代码那段那样用就好了

有关的疑问还是需要解答,回去看看课本上有没有详细的解释。 

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值