python 计算并绘制灰度直方图
Posted 阳光玻璃杯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 计算并绘制灰度直方图相关的知识,希望对你有一定的参考价值。
其灰度直方图为:
其灰度直方图为:
代码如下:
def calHistogram(img):
if(len(img.shape) != 2):
print("img size error")
return None
histogram =
for i1 in range(img.shape[0]):
for i2 in range(img.shape[1]):
if histogram.get(img[i1][i2]) is None:
histogram[img[i1][i2]] = 0
histogram[img[i1][i2]] += 1
# normalize
for key in histogram:
histogram[key] = float(histogram[key]) / (img.shape[0]*img.shape[1])
return histogram
def drawHistoGram(histogram):
pyplot.figure()
#设置x轴的最小值,最大值。y轴的最小值,最大值
pyplot.axis([0, 256, 0, 1])
#显示网格线
pyplot.grid(True)
#key正好就是灰度
keys = histogram.keys()
#value是灰度的像素数量,这里是归一化之后的
values = histogram.values()
#这里正式绘制直方图
pyplot.bar(tuple(keys), tuple(values))
pyplot.show()
def testHistogram():
test = cv.imread("test2.jpg",0)
histogram = calHistogram(test)
drawHistoGram(histogram)
cv.imshow("test",test)
cv.waitKey(0)
testHistogram()
以上是关于python 计算并绘制灰度直方图的主要内容,如果未能解决你的问题,请参考以下文章