用python实现高斯滤波器

这篇具有很好参考价值的文章主要介绍了用python实现高斯滤波器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、原理

高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑图像。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。其窗口模板的系数和均值滤波器不同,均值滤波器的模板系数都是相同的为1;而高斯滤波器的模板系数,则随着距离模板中心的增大而系数减小。所以,高斯滤波器相比于均值滤波器对图像个模糊程度较小。

如下图所示为21*21高斯滤波,离中心越远的像素点占的权重越小。
python 高斯滤波,图像处理,python,人工智能
二维高斯函数如下所示
python 高斯滤波,图像处理,python,人工智能
高斯滤波核实际上是对高斯函数的离散化,以3 * 3的高斯滤波核为例,(x,y)为点坐标,
python 高斯滤波,图像处理,python,人工智能
将以上点坐标代入高斯公式可得3 * 3高斯滤波核

sigma的作用:如下图所示,随着sigma(标准差)的增大,高斯滤波器对领域的考虑越多,因此生成的图像越模糊,极限情况下,高斯滤波器接近于均值滤波器。
python 高斯滤波,图像处理,python,人工智能

二、手搓代码

def gaussian(img, kernel_size, sigma):
    gaussian_kernel = np.zeros((kernel_size, kernel_size))
    print(gaussian_kernel.shape)
    sum = 0
    for i in range(kernel_size):
        for j in range(kernel_size):
            gaussian_kernel[i][j] = math.exp((-1 / 2) * (np.square(i - (kernel_size - 1) / 2) + np.square(j - (kernel_size - 1) / 2)) / sigma**2) / (2 * math.pi * sigma**2)
            sum = sum + gaussian_kernel[i][j]
    gaussian_kernel = gaussian_kernel / sum

    rows = np.size(img, 0)
    columns = np.size(img, 1)
    for i in range(0, rows - kernel_size + 1):
        for j in range(0, columns - kernel_size + 1):
            img[i][j] = np.sum(np.sum(gaussian_kernel * img[i:i + kernel_size, j:j + kernel_size]))
    return img

三、调用函数

img_blurr = cv2.GaussianBlur(img,(11,11),0)

参数分别为源图像、高斯核大小、x方向的标准差(y方向的标准差不设的话与x方向的相等)
当第三个参数设为0时,会自动计算合适的标准差,计算公式如下
python 高斯滤波,图像处理,python,人工智能文章来源地址https://www.toymoban.com/news/detail-598606.html

到了这里,关于用python实现高斯滤波器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图像处理:Gabor滤波器简介以及python实现

    在图像处理中,以Dennis Gabor命名的Gabor滤波器是一种用于纹理分析的线性滤波器,本质上是指在分析点或分析区域周围的局部区域内,分析图像中是否存在特定方向的特定频率内容。Gabor滤波器的频率和方向表示被许多当代视觉科学家认为与人类视觉系统的频率和方向表示相似

    2024年01月19日
    浏览(41)
  • 【C++】【图像处理】均值滤波 and 高斯滤波 and 中值滤波 (低通滤波器)and Sobel算子边缘提取算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)

     中值滤波: 中值滤波中的MidValueFind函数的实现就是冒泡排序,最后去中间值返回:  Soble算子边缘提取:     总结: 1、均值、高斯滤波和Sobel算子边缘提取的核心,创建卷积核并确定各个点上的权重,然后将边缘灰度级归零(是否边缘归零按业务需求决定),提取非边缘像

    2024年02月05日
    浏览(54)
  • OpenCV(图像处理)-基于python-滤波器(低通、高通滤波器的使用方法)

    低通滤波 :低通滤波可以去除图像的噪音或平滑图像。 高通滤波 :可以帮助查找图像的边缘。 噪音 :即对一幅图像的产生负面效果,过暗或过亮的部分,一幅图像中,低于或高于某个像素点的值,都可以认为是噪音。 卷积核 :即用来滤波的矩阵,卷积核一般为奇数,如

    2024年02月09日
    浏览(62)
  • python实现陷波滤波器、低通滤波器、高斯滤波器、巴特沃斯滤波器

    在一幅图像中,其低频成分对应者图像变化缓慢的部分,对应着图像大致的相貌和轮廓,而其高频成分则对应着图像变化剧烈的部分,对应着图像的细节(图像的噪声也属于高频成分)。 低频滤波器,顾名思义,就是过滤掉或者大幅度衰减图像的高频成分,让图像的低频成分

    2024年02月11日
    浏览(40)
  • 用python实现高斯滤波器

    高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑图像。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。其窗口模板的系数和均值滤波器不同,均值滤波器的模板系数都是相同的为1;而高斯滤波器的模板系数,则随着距离模板中心的增大

    2024年02月16日
    浏览(48)
  • 高斯滤波器讲解(python实现)

    比均值滤波处理图像更加的平滑,边界保留效果更加好; 高斯滤波是一种线性滤波器,能够有效的抑制噪声,平滑图像。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。但其窗口模板的系数和均值滤波器不同,均值滤波器的模板系数都是相同的为

    2024年02月03日
    浏览(42)
  • Matlab图像处理频域滤波实现——巴特沃斯低通、高通、带通带阻滤波器

    巴特沃斯滤波器是一种常用于图像处理的滤波器,它在频域中的传递函数具有更加平滑的过渡,相对于理想滤波器来说,巴特沃斯滤波器可以更好地控制截止频率和滤波器的阶数。下面是巴特沃斯滤波器的不同类型的原理简介: 1.原理 (1)巴特沃斯低通滤波(Butterworth Lowp

    2024年04月09日
    浏览(53)
  • 图像处理之高通滤波器与低通滤波器

    目录 高频与低频区分: 高通滤波器: 1.傅里叶变换: 低通滤波器: 总结:         在了解图像滤波器之前,先谈一下如何区分图像的高频信息和低频信息,所谓高频就是该像素点与周围像素差异较大,常见于一副图像的边缘细节和噪声等;而低频就是该像素点与周围像素

    2023年04月09日
    浏览(46)
  • OpenCV(图像处理)-基于Oython-滤波器(低通、高通滤波器的使用方法)

    低通滤波 :低通滤波可以去除图像的噪音或平滑图像。 高通滤波 :可以帮助查找图像的边缘。 噪音 :即对一幅图像的产生负面效果,过暗或过亮的部分,一幅图像中,低于或高于某个像素点的值,都可以认为是噪音。 卷积核 :即用来滤波的矩阵,卷积核一般为奇数,如

    2024年02月09日
    浏览(53)
  • 【图像处理 】卡尔曼滤波器原理

    目录 一、说明 二、它是什么? 2.1 我们可以用卡尔曼滤波器做什么? 2.2 卡尔曼滤波器如何看待您的问题

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包