python opencv 直方图均衡化_OpenCV+Python直方图均衡化

直方图均衡化可以将像素值分布的区域更广泛,在Python语言下,OpenCV提供的直方图均衡化函数有直接均衡化equalizeHist和自适应的均衡化createCLAHE,自适应的均衡化函数将整幅图像会被分成很多小块,然后再对每一个小块分别进行直接直方图均衡化。图像采用2种方法处理后的效果分别如中下、右下图所示。从效果上看,直接均衡化对比度太大,自适应直方图均衡化效果比较好。

三幅图像对应的直方图如下

有时候,使用直接均衡化的效果不是好不好的问题,而是。。。不好描述,直接看下图结果

而使用自适应均衡化一般不会出现这种情况,效果如下图

代码如下,IDE其中使用pyChar,data文件夹与.py文件在同一个文件夹下。

import cv2 as cv2

import numpy as np

import matplotlib.pyplot as plt

imgOrigin = cv2.imread('data/1.png', cv2.CV_16UC1)

imgEqualizeHist = cv2.equalizeHist(imgOrigin)

clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))

imgCLAHE = clahe.apply(imgOrigin)

cv2.imshow('origin', imgOrigin)

cv2.imshow('equalizeHist', imgEqualizeHist)

cv2.imshow('createCLAHE', imgCLAHE)

plt.ylim(0,10000)

plt.hist(imgOrigin.ravel(),256,[0,256]); plt.show()

plt.ylim(0,10000)

plt.hist(imgEqualizeHist.ravel(),256,[0,256]); plt.show()

plt.ylim(0,10000)

plt.hist(imgCLAHE.ravel(),256,[0,256]); plt.show()

cv2.waitKey(0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值