灰度直方图绘制步骤:
- 读取维度信息
- 读取灰度图片
- 灰度值计数与归一化
- 设置横纵坐标
- 显示灰度直方图
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 1 读取维度信息
img = cv2.imread('2.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
print('imgInfo: ', imgInfo)
# 2 读取灰度图片
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 3 灰度值计数
count = np.zeros(256, np.float)
for i in range(0, height):
for j in range(0, width):
index = int(gray[i, j])
count[index] = count[index] + 1
# 归一化数据
for i in range(0, 255):
count[i] = count[i] / (height * width)
# 4 设置横纵坐标
# 0~255 256点
x = np.linspace(0, 255, 256)
y = count
# 5 显示灰度直方图 不透明设置: 1
plt.bar(x, y, 0.9, alpha = 1, color = 'b')
plt.show()
cv2.waitKey(0)
原图片维度信息与灰度直方图结果如下:

网友评论