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

Python+CV

2021/03/05

直方图

使用PIL绘制图像的直方图

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

  2. 代码:
    from PIL import Imagefrom pylab import *#读取图像到数组中im = array(Image.open('./image/desert.jpg').convert('L'))#新建一个图像figure()#压平处理,绘制图像hist(im.flatten(), 128)show()

  3. 结果:
    在这里插入图片描述

直方图均衡化

使用PIL绘制图像的直方图

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

  2. 代码:
    在这里插入图片描述

  3. 结果:
    在这里插入图片描述

直方图均衡化

使用PIL绘制图像的直方图

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

  2. 代码:
    在这里插入图片描述

  3. 结果:
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值