计算机视觉 (直方图、高斯滤波、直方图均衡化)

计算机视觉
直方图、高斯滤波、直方图均衡化

一、直方图

1.基本原理

原理:
直方图是数值数据分布的精确图形表示。 这是一个连续变量(定量变量)的概率分布的估计,并且被卡尔·皮尔逊(Karl Pearson)首先引入。它是一种条形图。
为了构建直方图,第一步是将值的范围分段,即将整个值的范围分成一系列间隔,然后计算每个间隔中有多少值。 这些值通常被指定为连续的,不重叠的变量间隔。 间隔必须相邻,并且通常是(但不是必须的)相等的大小。
作用:
1、显示质量波动的状态;
2、较直观地传递有关过程质量状况的信息;
3、当人们研究了质量数据波动状况之后,就能掌握过程的状况,从而确定在什么地方集中力量进行质量改进工作。

2.相关代码

from numpy import array
from PIL import Image
#from matplotlib.pyplot import *
from pylab import *
#import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

im = array(Image.open('E:/Pythonproject/2021.png').convert('L'))  # 打开图像,并转成灰度图像
print(im)
figure()
subplot(121)
gray()
contour(im, origin='image')  # 画图
axis('equal')  # 自动调整比例
axis('on')  # 去除x、y轴上的刻度
title(u'原图轮廓')
subplot(122)
hist(im.flatten(), 128)
print(im.flatten())
title(u'直方图')
plt.xlim([0, 300])
plt.ylim([0, 11000])
show()
![在这里插入图片描述](https://img-blog.csdnimg.cn/160bcda039d2439d9ba29553aef7868b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd5aaZ5oOz5aSa5aSa6LSiLeadsA==,size_14,color_FFFFFF,t_70,g_se,x_16#pic_center)

3.结果展示

在这里插入图片描述

二、高斯滤波

1.基本原理

高斯滤波是一种线性平滑滤波器,对于服从正态分布的噪声有很好的抑制作用。在实际场景中,我们通常会假定图像包含的噪声为高斯白噪声,所以在许多实际应用的预处理部分,都会采用高斯滤波抑制噪声。
高斯滤波和均值滤波一样,都是利用一个掩膜和图像进行卷积求解。不同之处在于:均值滤波器的模板系数都是相同的,为1。而高斯滤波器的模板系数,随着距离模板中心距离的增大,系数减小(服从二维高斯分布)。所以,高斯滤波器相比于均值滤波器而言,对图像模糊程度较小,更能保持图像的整体细节。

2.相关代码

import cv2
import matplotlib.pyplot as plt
from matplotlib.pyplot import title
import matplotlib

im = cv2.imread("E:/Pythonproject/2021.png")
# 高斯滤波
img_Guassian = cv2.GaussianBlur(im, (5, 5), 0)

plt.subplot(121)
plt.imshow(im)

# 设置字体为楷体
matplotlib.rcParams['font.sans-serif'] = ["KaiTi"]

title(u'原图')
plt.subplot(122)
plt.imshow(img_Guassian)
title(u'高斯滤波后')
plt.show()

3.结果展示

在这里插入图片描述

三、直方图均衡化

1.基本原理

直方图均衡化(Histogram Equalization) 又称直方图平坦化,实质上是对图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。这样,原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的分段直方图:如果输出数据分段值较小的话,会产生粗略分类的视觉效果。
直方图均衡化是将随机分布的图像直方图修改成均匀分布的直方图。基本思想是对原始图像的像素灰度做某种映射变换, 使变换后图像灰度的概率密度呈均匀分布。这就意味着图像灰度的动态范围得到了增加, 提高了图像的对比度。

2.相关代码

from PIL import Image
from pylab import *
from PCV.tools import imtools
import matplotlib.pyplot as plt
import matplotlib

# 设置字体为楷体
matplotlib.rcParams['font.sans-serif'] = ["KaiTi"]

# 打开图像,并转成灰度图像
im = array(Image.open('E:/Pythonproject/2021.png').convert('L'))
im2, cdf = imtools.histeq(im)

figure()
subplot(2, 2, 1)
axis('off')
gray()
title(u'原始图像')
imshow(im)

subplot(2, 2, 2)
axis('off')
title(u'直方图均衡化')
imshow(im2)

subplot(2, 2, 3)
axis('off')
title(u'直方图')
hist(im.flatten(), 128, density=True)

subplot(2, 2, 4)
axis('off')
title(u'均衡化后的直方图')
hist(im2.flatten(), 128, density=True)
plt.show()

3.结果展示

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值