效果
如图,可以展示出我们的图像的颜色分布直方图,表明的图像的亮和暗
实现可视化色素分布直方图方法
这里我们对我们的灰色图片和彩色图片进行了直方图显示
import cv2
import matplotlib.pyplot as plt
image = cv2.imread("test.jpg")
# 彩色图片->灰色图片
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# cv2.calcHist([图像], [通道数(灰度图是0)], mask(掩码图像,为none即可), histSize(bines数量), [ranges(像素范围)])
# histSize(bines数量) 表示的是横坐标尺寸
hist1 = cv2.calcHist([gray], [0], None, [256], [0, 256])
hist2 = cv2.calcHist([image], [2], None, [256], [0, 256])
plt.plot(hist1, color='b')
plt.plot(hist2, color='r')
plt.show()
注意:记得下载
matplotlib包
上面代码里面的color='b'表示我们的直方图是蓝色的,这里可以用b代表blue
plt.plot(hist1, color='b', label='hist1')
运行结果
会出现这样一个程序
显示的直方图
扩展:给我们的直方图加上名字!
import cv2
import matplotlib.pyplot as plt
image = cv2.imread("test.jpg")
# 彩色图片->灰色图片
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# cv2.calcHist([图像], [通道数(灰度图是0)], mask(掩码图像,为none即可), histSize(bines数量), [ranges(像素范围)])
# histSize(bines数量) 表示的是横坐标尺寸
hist1 = cv2.calcHist([gray], [0], None, [256], [0, 256])
hist2 = cv2.calcHist([image], [2], None, [256], [0, 256])
plt.plot(hist1, color='b',label='hist1')
plt.plot(hist2, color='r',label='hist2')
plt.legend()
plt.show()
加入了
plt.legend()plt.plot里面加入了laber属性
效果: