1.全局直方图均衡化
import cv2 as cv
from matplotlib import pyplot as plt
def equalHist_demo(image): #全局直方图均衡化
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY) #opencv的直方图均衡化要基于单通道灰度图像
dst = cv.equalizeHist(gray) #自动调整图像对比度,把图像变得更清晰
cv.imshow("equalHist_demo",dst)
src = cv.imread(r"C:\pics\demo.png")
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src)
equalHist_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()
cv2.equalizeHist函数原型:equalizeHist(src[, dst]) -> dst。函数equalizeHist的作用:直方图均衡化,提高图像质量。
2.局部直方图均衡化
import cv2 as cv
from matplotlib import pyplot as plt
def clahe_demo(image):
gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY)
clahe = cv.createCLAHE(5, (8,8))
dst = clahe.apply(gray)
cv.imshow("clahe_demo", dst)
src = cv.imread(r"C:\pics\demo.png")
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src)
clahe_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()
createCLAHE函数原型:createCLAHE([, clipLimit[, tileGridSize]]) -> retval
clipLimit参数表示对比度的大小。
tileGridSize参数表示每次处理块的大小 。