python opencv 增强对比度

import cv2
import numpy as np
from matplotlib import pyplot as plt
img=cv2.imread('miao.jpg',0)
hist=cv2.calcHist([img],[0],None,[256],[0,256])

这是我们的测试图片,看起开一片漆黑,但实际上是有只小猫的,随后我们可以看到
python opencv 增强对比度_第1张图片

# 绘制直方图

# 使用Matplotlib绘制函数
# matplotlib.pyplot.hist()  它直接找到histogram然后绘制
import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('miao.jpg',0)
plt.hist(img.ravel(),256,[0,256]); plt.show()#将多维数组降位一维 numpy.ravel()返回视图,在原图操作  与numpy.flatten()返回拷贝,对原图没影响

python opencv 增强对比度_第2张图片

可以看到直方图分布十分集中

import cv2 as cv
#全局直方图均衡化
def eaualHist_demo(image):
    gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY)    #opencv的直方图均衡化要基于单通道灰度图像
#     cv.namedWindow('input_image', cv.WINDOW_NORMAL)
#     cv.imshow('input_image', gray)
    dst = cv.equalizeHist(gray)                #自动调整图像对比度,把图像变得更清晰
    cv.namedWindow("eaualHist_demo", cv.WINDOW_NORMAL)
    cv.imshow("eaualHist_demo", dst)
    return dst

#局部直方图均衡化
# def clahe_demo(image):
#     gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY)
#     clahe = cv.createCLAHE(5, (8,8))
#     dst = clahe.apply(gray)
#     cv.namedWindow("clahe_demo", cv.WINDOW_NORMAL)
#     cv.imshow("clahe_demo", dst)
# clahe_demo(src)
src=cv2.imread('miao.jpg')

dst = eaualHist_demo(src)

cv.waitKey(0)
cv.destroyAllWindows()

python opencv 增强对比度_第3张图片
看,多可爱~

你可能感兴趣的:(python)