如何用python绘制灰度直方图_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

#cal max value

maxValue = 0.0

maxKey = -1

for key in histogram:

if histogram[key] > maxValue:

maxValue = histogram[key]

maxKey = key

print(maxValue)

print(maxKey)

# normalize

for key in histogram:

histogram[key] = float(histogram[key]) / maxValue

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")

histogram = calHistogram(test)

drawHistoGram(histogram)

cv.imshow("test",test)

cv.waitKey(0)

testHistogram()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值