当前位置:   article > 正文

Python opencv 直方图均衡化

python opencv 直方图均衡化

直方图均衡化分为两种:一种是直方图均衡化,一种是自适应直方图均衡化

图像领域又分为三种:灰度图均衡化彩色图均衡化、YUV 直方图均衡化

所谓的均衡化又称为图像增强,也是我们熟知的增益

我一般用的最多的是直方图均衡化和自适应直方图均衡化,因此在这里主要介绍这两个。

灰度图直方图均衡化(全局)

  1. #img为输入的单通道图像
  2. cv2.equalizeHist(img)

灰度图自适应直方图均衡化

  1. #img为输入的单通道图像,clahe和cll是自定义变量
  2. clahe = cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8))
  3. #待知晓……
  4. cll = clahe.apply(img)

彩色图直方图均衡化(全局)

  1. # 将BGR图像转换到HSV空间中
  2. hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
  3. # 将HSV图像通道分离
  4. channels = cv2.split(hsv)
  5. # 对第1个通道即色调通道进行全局直方图均衡化并保存
  6. cv2.equalizeHist(channels[0],channels[0])
  7. # 将处理后的通道和没有处理的两个通道合并,命名为hsv
  8. cv2.merge(channels,hsv)
  9. # 将HSV图像转换回BGR图像
  10. cv2.cvtColor(ycrcb, cv.COLOR_HSV2BGR, img)

彩色图自适应直方图均衡化

  1. #将BGR的图像转换成HSV
  2. hsv = cv2.cvtColor(img, cv.COLOR_BGR2HSV)
  3. #分离HSV通道
  4. channels = cv2.split(hsv)
  5. #将图像自适应均衡化
  6. clahe = cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8))
  7. #对第1个通道即色调通道进行均衡化
  8. clahe.apply(channels[0],channels[0])
  9. #将处理后的通道和没有处理的两个通道合并,命名为hsv
  10. cv2.merge(channels,hsv)
  11. #将HSV的图像转换回BGR
  12. cv2.cvtColor(ycrcb, cv.COLOR_HSV2BGR, img)

YUV直方图均衡化(未细查,但图片出来的效果是最自然的一个)

  1. #将BGR转换成YCrCb
  2. imgYUV = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb)
  3. #分离YCrCb通道
  4. channelsYUV = cv2.split(imgYUV)
  5. #按第1个通道即亮度通道进行直方图均衡化
  6. channelsYUV[0] = cv2.equalizeHist(channelsYUV[0])
  7. #将完成转换的通道与其余通道融合
  8. channels = cv2.merge(channelsYUV)
  9. #将YCrCb转换回BGR
  10. result = cv2.cvtColor(channels, cv2.COLOR_YCrCb2BGR)

计算方法

 随机一份图像的像素值,从灰度值的小到大 or 大到小进行顺序排列,先计算像素个数,再计算个数占总数的百分比(也就是概率),不同的是我们真正要用的不是概率,而是累计概率。从上到下用概率来计算累计概率,再根据计算公式计算均衡化后的灰度值,(255-0)指的是像素值从0到255,最后进行取整

ps:YUV是另一种表达均衡化方式,和上面的不一样,怎么舒服怎么写

参考:opencv python 实现灰度图像和彩色图像直方图全局均衡化和自适应均衡化_Ibelievesunshine的博客-CSDN博客

深入理解OpenCV+Python直方图均衡化_Linux编程_Linux公社-Linux系统门户网站

python+opencv直方图均衡化_不二的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/141095
推荐阅读
相关标签
  

闽ICP备14008679号