包含高斯函数图片Python的词条

如何用python实现图像的一维高斯滤波

如何用python实现图像的一维高斯滤波

成都创新互联公司主要从事做网站、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务红岗,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

建议你不要使用高斯滤波。

推荐你使用一维中值滤波

matlab的函数为

y = medfilt1(x,n);

x为数组,是你要处理原始波形,n是中值滤波器的参数(大于零的整数)。y是滤波以后的结果(是数组)

后面再

plot(y);

就能看到滤波以后的结果

经过medfilt1过滤以后,y里储存的是低频的波形,如果你需要高频波形,x-y就是高频波形

顺便再说一点,n是偶数的话,滤波效果比较好。

N越小,y里包含的高频成分就越多,y越大,y里包含的高频成分就越少。

记住,无论如何y里保存的都是整体的低频波。(如果你看不懂的话,滤一下,看y波形,你马上就懂了)

如何用python实现图像的一维高斯滤波器

如何用python实现图像的一维高斯滤波器

现在把卷积模板中的值换一下,不是全1了,换成一组符合高斯分布的数值放在模板里面,比如这时中间的数值最大,往两边走越来越小,构造一个小的高斯包。实现的函数为cv2.GaussianBlur()。对于高斯模板,我们需要制定的是高斯核的高和宽(奇数),沿x与y方向的标准差(如果只给x,y=x,如果都给0,那么函数会自己计算)。高斯核可以有效的出去图像的高斯噪声。当然也可以自己构造高斯核,相关函数:cv2.GaussianKernel().

import cv2

import numpy as np

import matplotlib.pyplot as plt

img = cv2.imread(‘flower.jpg‘,0) #直接读为灰度图像

for i in range(2000): #添加点噪声

temp_x = np.random.randint(0,img.shape[0])

temp_y = np.random.randint(0,img.shape[1])

img[temp_x][temp_y] = 255

blur = cv2.GaussianBlur(img,(5,5),0)

plt.subplot(1,2,1),plt.imshow(img,‘gray‘)#默认彩色,另一种彩色bgr

plt.subplot(1,2,2),plt.imshow(blur,‘gray‘)

2021-02-08 Python OpenCV GaussianBlur()函数

borderType= None)函数

此函数利用高斯滤波器平滑一张图像。该函数将源图像与指定的高斯核进行卷积。

src:输入图像

ksize:(核的宽度,核的高度),输入高斯核的尺寸,核的宽高都必须是正奇数。否则,将会从参数sigma中计算得到。

dst:输出图像,尺寸与输入图像一致。

sigmaX:高斯核在X方向上的标准差。

sigmaY:高斯核在Y方向上的标准差。默认为None,如果sigmaY=0,则它将被设置为与sigmaX相等的值。如果这两者都为0,则它们的值会从ksize中计算得到。计算公式为:

borderType:像素外推法,默认为None(参考官方文档 BorderTypes

)

在图像处理中,高斯滤波主要有两种方式:

1.窗口滑动卷积

2.傅里叶变换

在此主要利用窗口滑动卷积。其中二维高斯函数公式为:

根据上述公式,生成一个3x3的高斯核,其中最重要的参数就是标准差 ,标准差 越大,核中心的值与周围的值差距越小,曲线越平滑。标准差 越小,核中心的值与周围的值差距越大,曲线越陡峭。

从图像的角度来说,高斯核的标准差 越大,平滑效果越不明显。高斯核的标准差 越小,平滑效果越明显。

可见,标准差 越大,图像平滑程度越大

参考博客1:关于GaussianBlur函数

参考博客2:关于高斯核运算

标题名称:包含高斯函数图片Python的词条
文章转载:https://www.cdcxhl.com/article26/heescg.html

成都网站建设公司_创新互联,为您提供企业网站制作小程序开发网页设计公司网站制作微信小程序电子商务

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司