opencv 求图像灰度直方图以及直方图均衡化
图像的灰度直方图表示的是0-255之间图像每个灰度级在图像中的像素个数,因此灰度直方图横坐标表示的是0-255个灰度级别,纵坐标表示每个灰度级别的个数,因此求图像灰度直方图的代码可以表示为:
#hist表示255干个灰度级
hist=np.zeros(256)
#rows,cols表示图像长宽用于求图像像素点
rows=img.shape[0]
cols=img.shape[1]
for i in range(rows):
for j in range(cols):
tmp=img[i][j]#tmp为图像中像素点对应的灰度值
hist[tmp]=hist[tmp]+1#在hist对应灰度值的位置加1
对图像进行灰度直方图均衡化用于提高图像的对比度,-可以将每个灰度级的个数除以图像的整个像素数,得到每个灰度级在图像中的占比情况,对其进行累加,便可将整个灰度级平均分布到整个图像中,再乘以灰度级255得到均衡后的灰度直方图:
其代码表述为:
rows=img.shape[0