直方图、高斯滤波、直方图均衡化的绘制实现

Python+CV

2021/03/05

直方图

使用PIL绘制图像的直方图

  1. 原理:图像的直方图用来表征该图像像素值的分布情况。用一定数目的小区间(bin)来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目。该(灰度)图像的直方图可以使用 hist() 函数绘制;其中,hist() 函数的第二个参数指定小区间的数目,需要注意的是,因为 hist() 只接受一维数组作为输入,所以我们在绘制图像直方图之前,必须先对图像进行压平处理,使用flatten() 方法将任意数组按照行优先准则转换成一维数组。

  2. 代码:
    直方图、高斯滤波、直方图均衡化的绘制实现_第1张图片

  3. 结果:
    直方图、高斯滤波、直方图均衡化的绘制实现_第2张图片

直方图均衡化

使用PIL绘制图像的直方图

  1. 原理:直方图均衡化指将一幅图像的灰度直方图变平,使得变换后的图像中每个灰度值的分布概率都相同,该方法是对灰度值归一化,可以增强图像的对比度。
    在这种情况下,直方图均衡化的变换函数是图像中像素值的累积分布函数(cumulative
    distribution function,简写为 cdf,将像素值的范围映射到目标范围的归一化操作)
    定义一个histeq()函数来实现直方图均衡化的功能。该函数有两个参数:im-灰度图像,nbr_bins-直方图中使用的bin的数目。bin:指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目.

  2. 代码:
    直方图、高斯滤波、直方图均衡化的绘制实现_第3张图片

  3. 结果:
    直方图、高斯滤波、直方图均衡化的绘制实现_第4张图片

直方图均衡化

使用PIL绘制图像的直方图

  1. 原理:图像模糊的本质就是将(灰度)图像 I 和一个高斯核进行卷积操作:
    Iσ = I*Gσ
    其中 * 表示卷积操作;Gσ 是标准差为 σ 的二维高斯核,高斯模糊通常是其他图像处理操作的一部分,比如图像插值操作、兴趣点计算以及很多其他应用。SciPy 有用来做滤波操作的scipy.ndimage.filters 模块。该模块使用快速一维分离的方式来计算卷积。
    随着 σ 的增加,一幅图像被模糊的程度。σ 越大,处理后的图像细节丢失越多。

  2. 代码:
    直方图、高斯滤波、直方图均衡化的绘制实现_第5张图片

  3. 结果:

你可能感兴趣的:(直方图、高斯滤波、直方图均衡化的绘制实现)