(Python+OpenCV)绘制灰度直方图

绘制单通道直方图和RGB三通道直方图。

 

IDE:Jupyter Lab

#!/usr/bin/env python
# coding: utf-8

# In[13]:


import sys
import cv2 as cv
import matplotlib.pyplot as plt


# In[14]:


print('Python的版本为:Python',sys.version_info.major)
print('OpenCV的版本为:',cv.__version__)


# In[15]:


#图片路径
#(应避免有中文)
image_path=r'C:\Users\94456\Desktop\test2020_09_03\picture\cat.jpg'


# In[16]:



#读取图片
#类型:numpy.ndarray
image=cv.imread(image_path)


# In[17]:


#显示原图
cv.namedWindow('cat',cv.WINDOW_NORMAL)
cv.resizeWindow('cat',200,200)
cv.imshow('cat',image)
cv.waitKey(0)


# In[18]:


#使用 ravel 拉直图像
#ravel:将多维矩阵降为一维矩阵
image_ravel=image.ravel()


# In[19]:


#对比降维前和降维后的矩阵
print('降维前的尺寸:',image.shape)
print('降维后的尺寸:',image_ravel.shape)


# In[27]:


get_ipython().run_line_magic('matplotlib', 'auto')
#显示灰度直方图
plt.hist(image_ravel,256,[0,256])
plt.show()


# In[29]:


get_ipython().run_line_magic('matplotlib', 'auto')
color=['blue','green','red']
for i,color_sub in enumerate(color):
    #要计算的图
    #要计算的维度
    #要计算的区域ROI,计算整图则为None
    #子区段数目
    #要计算的像素范围
    hist=cv.calcHist([image],[i],None,[256],[0,256])
    plt.plot(hist,color=color_sub)
    plt.xlim([0,256])
plt.show()


# In[ ]:




 

原图:

对原图进行降维:

直方图:

RGB三通道直方图:

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Think@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值