【计算机视觉(8)】

基于Python的OpenCV基础入门——图像直方图

直方图

直方图是一种用于描述图像亮度分布的统计工具。它将图像的像素亮度值按照不同的亮度等级进行计数,并以直方图的形式呈现出来。图像直方图可以显示图像中每个亮度级别的像素数量,从而用于分析图像的亮度分布情况。

图像直方图

hist = cv2.calcHist([img], [channels], Mask, [histSize], ranges)
参数:
[img]: 必须用方括号括起来,表示被计算的图像,可以是多幅。
[channels]: 用于计算直方图的通道,这里使用灰度图计算直方图,所以就直接使用第一个通道,多幅图像相当于多通道;
Mask: 与原图维度相同,被计算的区域,1 计算,0 不计算,不使用该参数用 None。
[histSize]: 表示这个直方图分成多少份(即多少个直方柱的数量)。
ranges: 表示直方图中各个像素的值,[0.0, 256.0]表示直方图能表示像素值从 0.0 到 256 的像素。

图像直方图代码以及实现效果

import cv2  
import matplotlib.pyplot as plt
  
img = cv2.imread("img/cat.jpg")  
  
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #将BGR 格式转换为RGB 格式  
  
# 绘制图像直方图  
plt.subplot(2,1,1) # 2 * 1布局的 上面   
hist1=plt.hist(img.ravel(), 256, [0, 256]) #numpy 的ravel 函数功能是将多维数组降为一维数组  
  
# 画三通道图像的折线图  
plt.subplot(2,1,2)  
color = ('b', 'g', 'r') #这里画笔颜色的值可以为大写或小写或只写首字母或大小写混合  
for i , color in enumerate(color):   
    hist = cv2.calcHist([img], [i], None, [256], [0, 256]) #计算直方图  
    plt.plot(hist, color)  
    plt.xlim([0, 256])  
  
plt.show()

图像直方图的实现效果如下:
在这里插入图片描述

相关推荐

  1. 计算机视觉

    2024-06-07 09:58:02       21 阅读
  2. 计算机视觉

    2024-06-07 09:58:02       17 阅读
  3. 计算机视觉

    2024-06-07 09:58:02       14 阅读
  4. 计算机视觉

    2024-06-07 09:58:02       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 09:58:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 09:58:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 09:58:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 09:58:02       18 阅读

热门阅读

  1. 用Pip配置Pytorch环境 (Pytorch==2.3.0)

    2024-06-07 09:58:02       8 阅读
  2. oracle服务器存储过程中调用http

    2024-06-07 09:58:02       6 阅读
  3. Docker

    Docker

    2024-06-07 09:58:02      6 阅读
  4. ubuntu22.04防火墙策略

    2024-06-07 09:58:02       6 阅读
  5. Linux-用户管理与软件管理

    2024-06-07 09:58:02       9 阅读
  6. Python3 推导式

    2024-06-07 09:58:02       7 阅读
  7. C++ STL std::vector的实现机制【面试】

    2024-06-07 09:58:02       7 阅读
  8. python使用appium截图手机屏幕图片

    2024-06-07 09:58:02       6 阅读