1. 基本原理
在这里将给大家介绍三种常见的直方图均衡化的方法。
考虑一个图像,其像素值仅限于某些特定的值范围。例如,较亮的图像将所有像素限制在较高的值内。但是一个好的图像将有来自图像所有区域的像素。所以您需要将这个柱状图拉伸到两端(如下图所示,来自维基百科),这就是柱状图均衡的作用(简单来说)。这通常会提高图像的对比度。
2. 基于numpy 的直方图均衡化
我们首先使用 numpy 画出一张图象的直方图
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('wiki.jpg',0)
hist,bins = np.histogram(img.flatten(),256,[0,256])
cdf = hist.cumsum()
cdf_normalized = cdf * hist.max()/ cdf.max