如果一副图像具有全部可能的灰度级,并且像素值的灰度均匀分布,那么这副图像就具有高对比度和多变的灰度色调。灰度级丰富且覆盖范围较大。在外观上这样的图像具有更加丰富的色彩,不会过暗或者过亮。
直方图均衡化的主要目的是将原始图像的灰度级均匀地映射到整个灰度级范围内,得到一个灰度级分布均匀的图像

直方图均衡化的两种方法:
第一在原有范围内实现均衡化。在原有的范围内实现直方图均衡化是,用当前灰度级的累计概率乘以当前灰度级的最大值,得到新的灰度级

第二在更广泛的为范围内实现均衡化
在更广泛的范围内实现直方图均衡化时,用当前灰度级的累计概率乘以更加广泛范围内的灰度级的最大值,得到新的灰度级,并作为均衡化的结果

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('../data/1.jpg')

img0 = cv2.equalizeHist(img[:, :, 0])  # 各个通道分别均衡化
img1 = cv2.equalizeHist(img[:, :, 1])
img2 = cv2.equalizeHist(img[:, :, 2])

img_e = cv2.merge([img0, img1, img2])

plt.figure('original')
plt.hist(img.ravel(), 256)
plt.figure('after')
plt.hist(img_e.ravel(), 256)
plt.show()

cv2.imshow('img', img)
cv2.imshow('e_img', img_e)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('../data/equ.jpg', img_e)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐