OpenCV—直方图处理

本文介绍了OpenCV中的图像直方图处理,包括如何使用`hist()`和`calcHist()`函数绘制直方图,以及通过`equalizeHist()`函数进行直方图均衡化,以提升图像的对比度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

© Fu Xianjun. All Rights Reserved.


图像直方图

图像直方图是图像内灰度值的统计特性与图像灰度值之间的函数,直方图统计图像内各个灰度级出现的次数。

例如,该图中只有9个像素点,存在1、2、3、4、5,共5个灰度级。

在这里插入图片描述
统计各个灰度级出现的次数:

在这里插入图片描述
在绘制直方图是,将灰度级作为x轴的处理,该灰度级出现的次数作为y轴处理,则可知:

  • x轴的数据为 x = [ 1 2 3 4 5 ]。
  • y轴的数据为 y = [ 3 1 2 1 2 ]。

直方图绘制

1、hist()函数

此函数的作用是根据数据源和灰度图级分组绘制直方图,其函数语句格式为:
matplotlib.pyplot.hist(X,BINS)

  • X:数据源,必须是一维的。图像通常是二维的,需要使用ravel()函数将图像处理为一维数据源以后,再作为参数使用。
  • BINS:表示灰度级的分组情况。

函数racel()的作用是将二维数组降维成一维数组。有图像a,其值为:

21 34 63
142 231 59
67 138 74

使用函数racel()对a进行处理:b = a.ravel() , 可以得到b为:

21 34 63 142 231 59 67 138 74

【例】 使用cv2.hist()绘制直方图。
编写代码如下(示例):

import cv2
import matplotlib.pyplot as plt
img1=cv2.imread("hj.jpg",
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值