美文网首页
45. 图像的灰度直方图

45. 图像的灰度直方图

作者: 大龙10 | 来源:发表于2025-06-28 06:11 被阅读0次

灰度变换与直方图索引

一、图像直方图

  • 图像直方图是反映图像像素分布的统计表,横坐标代表像素值的取值区间,纵坐标代表每一像素值在图像中的像素总数或者所占的百分比。 灰度直方图是图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数。

  • 灰度直方图反映了图像中的灰度分布规律,直观地表现了图像中各灰度级的占比,很好地体现出图像的亮度和对比度信息:灰度图分布居中说明亮度正常,偏左说明亮度较暗,偏右表明亮度较高;狭窄陡峭表明对比度降低,宽泛平缓表明对比度较高。

  • 根据直方图的形态可以判断图像的质量,通过调控直方图的形态可以改善图像的质量。

二、函数 cv2.calcHist

  • Numpy中的函数 np.bincount 也可以实现同样的功能。

cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate ]]) → hist

参数说明:

  • images:输入图像,用 [] 括号表示
  • channels: 直方图计算的通道,用 [] 括号表示
  • mask:掩模图像,一般置为 None
  • histSize:直方柱的数量,一般取 256
  • ranges:像素值的取值范围,一般为 [0,256]
  • 返回值 hist:返回每一像素值在图像中的像素总数,形状为 (histSize,1)

注意:

  • 1.参数 images, channels, histSize, ranges 都要带 [] 号。
  • 2.mask 是与 images 大小相同的掩模图像,掩模为 0 的区域不作处理。不使用掩模时设为 None。
    1. channels 设置对彩色图像的指定通道计算直方图,灰度图像时设为 0。
    1. Numpy 中的函数 np.bincount 也可以实现同样的功能,但该函数返回值的形状为 (histSize,)

三、例程

  • 1.57 图像的灰度直方图
import cv2
import numpy as np
from matplotlib import pyplot as plt

# 1.57 图像的灰度直方图
img = cv2.imread(r"e:/opencv/bgra.png", flags=0)  # flags=0 读取为灰度图像

histCV = cv2.calcHist([img], [0], None, [256], [0, 256])  # OpenCV 函数 cv2.calcHist
histNP, bins = np.histogram(img.flatten(), 256)
print(histCV.shape, histNP.shape)  # histCV: (256, 1), histNP: (256,)

plt.figure(figsize=(10,3))
plt.subplot(131), plt.imshow(img, cmap='gray', vmin=0, vmax=255), plt.title("Original"), plt.axis('off')
plt.subplot(132,xticks=[], yticks=[]), plt.axis([0,255,0,np.max(histCV)])
plt.bar(range(256), histCV[:,0]), plt.title("Gray Hist(cv2.calcHist)")
plt.subplot(133,xticks=[], yticks=[]), plt.axis([0,255,0,np.max(histCV)])
plt.bar(bins[:-1], histNP), plt.title("Gray Hist(np.histogram)")
plt.show()

四、资料

youcans_的博客:
https://blog.csdn.net/youcans/article/details/121543352

相关文章

  • 【图像处理】直方图均衡与匹配

    灰度直方图 灰度直方图: 图像灰度直方图描述的是图像各个灰度级的统计特性,横坐标表示各级灰度值,纵坐标表示各级灰度...

  • 图片处理-opencv-6.灰度直方图

    灰度直方图 定义: 灰度直方图(histogram)是灰度级的函数,描述的是图像中每种灰度级像素的个数,反映图像...

  • 三、图像直方图变换和几何变换

    直方图变换 灰度变换 点运算 几何变换 直方图变换 1.灰度直方图 灰度直方图:数字图像中每一灰度级像素出现的频次...

  • OpenCV 直方图处理:直方图均衡和规定化(匹配)

    灰度直方图是图像中像素灰度集的一种统计反应。它能够描述图像中灰度的分布情况,直观地展现出图像中灰度所占多少。直方图...

  • exp1-空间域图像增强

    图像灰度变换 计算显示图像直方图、直方图均衡化 空间域图像平滑、锐化

  • 灰度直方图和均衡化

    目的: 得到原图的灰度直方图 使原图均衡化 得到均衡化图的灰度直方图 什么是灰度直方图: 图像中所有的像素一句像素...

  • 图像的点运算1

    灰度直方图 灰度直方图是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出...

  • LabVIEW图像灰度测量(基础篇—7)

    像素灰度是图像最为典型的特征之一,基于图像像素灰度能衍生更多的图像特征,包括图像的直方图、线灰度分布曲线、图像线灰...

  • 常见的图像与处理

    1.直方图均值化直方图均值化是对图像灰度值进行归一化的一种方法,可以增强图像对比度。其原理是将一幅图像的灰度直方图...

  • opencv+python 统计及绘制直方图

     灰度直方图概括了图像的灰度级信息,简单的来说就是每个灰度级图像中的像素个数以及占有率,创建直方图无外乎两个步骤,...

网友评论

      本文标题:45. 图像的灰度直方图

      本文链接:https://www.haomeiwen.com/subject/drnugjtx.html