python+opencv实现直方图、高斯滤波和直方图均衡化

一、绘制直方图

1.基本原理

直方图是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。在数字图像中,直方图其实是灰度级与该灰度级出现总数的对应关系,直方图的横坐标是灰度级,纵坐标是对应灰度级的总像素数。
array(): 载入图像,将图像转化成numpy的数组对象
convert(): 将图像转换成灰度图像
flatten() : 将任意数组按照行优先准则转换成一维数组
hist(): 绘制直方图,直方图用一定数目的小区间(bin)来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目,其中第二个参数即用于表示指定小区间的数目。
axis(‘off’): 不显示坐标尺寸
show(): 首先打开图形用户界面(GUI),然后新建一个图像窗口。

2.代码实现

python+opencv实现直方图、高斯滤波和直方图均衡化_第1张图片

3.结果展示

python+opencv实现直方图、高斯滤波和直方图均衡化_第2张图片

二、直方图均衡化

1.基本原理

直方图均衡化,就是把原始图像的灰度直方图从比较集中的某个 灰度区间变成在全部灰度范围内的均匀分布,均衡化处理的最终结果是一幅扩展了动态范围的图像,它具有较高的对比度。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
histeq(): 直方图均衡化,函数返回直方图均衡化后的图像,以及用来做像素值映射的累计分布函数

2.代码实现

python+opencv实现直方图、高斯滤波和直方图均衡化_第3张图片

3.结果展示

python+opencv实现直方图、高斯滤波和直方图均衡化_第4张图片

三、高斯滤波

1.基本原理

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像去噪。
可以简单地理解为,高斯滤波去噪就是对整幅图像像素值进行加权平均,针对每一个像素点的值,都由其本身值和邻域内的其他像素值经过加权平均后得到。
高斯滤波的具体操作是:用一个用户指定的模板(或称卷积、掩膜)去扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
gaussian_filter(): 高斯滤波函数,输入到函数的是矩阵以及标准差,返回值是和输入同样形状的矩阵;设置的标准差越大,得到的图像越模糊,这里显示标准差为10时输出的图像。

2.代码实现

python+opencv实现直方图、高斯滤波和直方图均衡化_第5张图片

3.结果展示

python+opencv实现直方图、高斯滤波和直方图均衡化_第6张图片

你可能感兴趣的:(python+opencv实现直方图、高斯滤波和直方图均衡化)