1. 基本原理
灰度直方图,表示图像中不同灰度值所出现的频数,通过坐标轴绘制成直方图用以表示。考虑如下图片:
car
灰度直方图如下:
hist
观察灰度直方图可以发现,灰度分布主要集中在100~180之间,对比度较小,表现在图像上的就是层次不清晰。
直方图均衡化(Histogram Equalization)是一种增强图像对比度(Image Contrast)的方法,其主要思想是将一副图像的直方图分布变成近似均匀分布,从而增强图像的对比度。直方图均衡化虽然只是数字图像处理(Digital Image Processing)里面的基本方法,但是其作用很强大,是一种很经典的算法。
基本计算方式如下:
2. 使用场景
提升对比度,拉升灰度直方图。
3. 代码示例
代码如下:
import cv2 as cv
import numpy as np
from math import *
import matplotlib.pyplot as plt
img = cv.imread("car.png",cv.IMREAD_GRAYSCALE)
dst = cv.equalizeHist(img)
plt.figure()
plt.subplot(2,2,1)
plt.imshow(img, cmap='gray')
plt.xticks([]);plt.yticks([])
plt.subplot(2,2,2)
plt.imshow(dst, cmap='gray')
plt.xticks([]);plt.yticks([])
plt.subplot(2,2,3)
plt.yticks([])
plt.hist(img.ravel(), 256, [0, 256])
plt.subplot(2,2,4)
plt.yticks([])
plt.hist(dst.ravel(), 256, [0, 256])
plt.show()
输出结果如下:
结果图
引用:
https://www.slideserve.com/halla-chan/6638130
https://zhuanlan.zhihu.com/p/44918476
网友评论