如何绘制出图像的色素分布直方图

发布时间:2024年01月18日

效果

如图,可以展示出我们的图像的颜色分布直方图,表明的图像的亮和暗

实现可视化色素分布直方图方法

这里我们对我们的灰色图片和彩色图片进行了直方图显示

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属性

效果:

文章来源:https://blog.csdn.net/zhuyuyaya/article/details/135631204
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。