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

效果

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

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

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

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

效果:

相关推荐
AI云原生42 分钟前
云原生系列Bug修复:Docker镜像无法启动的终极解决方案与排查思路
运维·服务器·python·docker·云原生·容器·bug
万粉变现经纪人3 小时前
如何解决 pip install -r requirements.txt 私有索引未设为 trusted-host 导致拒绝 问题
开发语言·python·scrapy·flask·beautifulsoup·pandas·pip
查士丁尼·绵4 小时前
笔试-九宫格三阶积幻方
python·九宫格·三阶积幻方
l1t6 小时前
DeepSeek辅助利用搬移底层xml实现快速编辑xlsx文件的python程序
xml·开发语言·python·xlsx
大飞记Python6 小时前
部门管理|“编辑部门”功能实现(Django5零基础Web平台)
前端·数据库·python·django
查士丁尼·绵8 小时前
笔试-羊狼过河
python
摸鱼的老谭8 小时前
构建Agent该选Python还是Java ?
java·python·agent
鄃鳕9 小时前
python 字典 列表 类比c++【python】
c++·python
可触的未来,发芽的智生9 小时前
新奇特:黑猫警长的纳米世界,忆阻器与神经网络的智慧
javascript·人工智能·python·神经网络·架构
程序员三藏9 小时前
Jmeter接口测试与压力测试
自动化测试·软件测试·python·测试工具·jmeter·接口测试·压力测试