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

效果

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

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

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

python 复制代码
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

python 复制代码
plt.plot(hist1, color='b', label='hist1')

运行结果

会出现这样一个程序

显示的直方图

扩展:给我们的直方图加上名字!

python 复制代码
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属性

效果:

相关推荐
起个名字费劲死了1 小时前
Halcon学习一:骰子识别
前端·python·学习
eric-sjq2 小时前
小思框架 · 30M 级长上下文新架构对比技术报告
人工智能·python·深度学习·语言模型
reasonsummer4 小时前
【办公类-04-05】20261030整理手机照片(华为手机助手导出照片到日期文件夹+批量添加四级文件夹+手动转移照片更名+更改三级文件夹合并汉字名称)
python·智能手机
zwc32104320554 小时前
Day 2:图像内存、数据类型与stride
c++·人工智能·opencv·算法·计算机视觉
BD_Marathon4 小时前
【Python】初识迭代器
python
gz927cool5 小时前
Python 全栈应用最佳实践完整指南
开发语言·python·ai
智购科技智能售货柜5 小时前
顾客已经关门,视觉售货柜还在处理旧画面:延迟积压怎么查?~YH
python·单片机·嵌入式硬件·物联网·eclipse
梯度下降者5 小时前
Python从0到100(三):Python中的变量介绍
python·作用域·变量·数据类型·计算机常识
誰能久伴不乏5 小时前
OpenCV 入门(二):像素访问、ROI 与深浅拷贝
人工智能·opencv·计算机视觉
AIFQuant5 小时前
Python期货行情API接入:股指、黄金、原油多品种数据管道实战
开发语言·python·金融·区块链·量化开发