【图像增强】图像均衡化操作

直方图均衡化

图像的直方图是对图像对比度效果上的一种处理,旨在使得图像整体效果均匀,黑与白之间的各个像素级之间的点更均匀一点。

实质:对图像进行非线性拉伸,使得一定灰度范围像素点数量的值大致相等

在这里插入图片描述

cv2.equalizeHist(img) #直方图均衡化,参数为灰度图像

通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。

这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。

自适应直方图均衡(AHE)

由于整体亮度的提升,会使得局部图像的细节变得模糊,为了解决直方图均衡化这点的不足

AHE对图像进行局部均衡
  • 移动模板在原始图片上按特定步长滑动;
  • 每次移动后,模板区域内做直方图均衡,映射后的结果赋值给模板区域内所有点,
  • 每个点会有多次赋值,最终的取值为这些赋值的均值。

限制对比度自适应直方图均衡(CLAHE)

AHE会过度放大图像中相对均匀区域的噪音,因此采用CLAHE

clahe = cv2.createCLAHE(clipLimit=2,tileGridSize=(10,10))  #实例化自适应直方图均衡化函数
cl1 = clahe.apply(img)  #进行自适应直方图均衡化
CLAHE直方图修剪过程

在这里插入图片描述

CLAHE算法步骤
  1. 图像分块,以块为单位;

  2. 先计算直方图,然后修剪直方图,最后均衡;

  3. 遍历操作各个图像块,进行块间双线性插值;
    在这里插入图片描述

  4. 与原图做图层滤色混合操作。(可选)

完整代码如下

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('timg.jpg',0) #直接读为灰度图像
res = cv2.equalizeHist(img) 

clahe = cv2.createCLAHE(clipLimit=2,tileGridSize=(10,10))
cl1 = clahe.apply(img)

plt.subplot(131),plt.imshow(img,'gray')
plt.subplot(132),plt.imshow(res,'gray')
plt.subplot(133),plt.imshow(cl1,'gray')

plt.show()

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值