均值滤波器(平滑空间滤波器)基本原理及Python实现

1. 基本原理

使用元素的领域内像素的平均值代替该元素,可明显的降低图像灰度的尖锐变换。它的一种重要应用是模糊处理:得到感兴趣的区域的粗略表示,将次要的/小的元素与背景融合,使得主要的/较大的元素变得易于检测

$$ R=\frac{1}{m} \sum_{i=1}^{m} z_{i} $$

  • $m$为滤波器大小

2. 测试结果

图源自skimage

3. 代码

 1 import numpy as np
 2
 3
 4 def means_filter(input_image, filter_size):
 5     ‘‘‘
 6     均值滤波器
 7     :param input_image: 输入图像
 8     :param filter_size: 滤波器大小
 9     :return: 输出图像
10
11     注:此实现滤波器大小必须为奇数且 >= 3
12     ‘‘‘
13     input_image_cp = np.copy(input_image)  # 输入图像的副本
14
15     filter_template = np.ones((filter_size, filter_size))  # 空间滤波器模板
16
17     pad_num = int((filter_size - 1) / 2)  # 输入图像需要填充的尺寸
18
19     input_image_cp = np.pad(input_image_cp, (pad_num, pad_num), mode="constant", constant_values=0)  # 填充输入图像
20
21     m, n = input_image_cp.shape  # 获取填充后的输入图像的大小
22
23     output_image = np.copy(input_image_cp)  # 输出图像
24
25     # 空间滤波
26     for i in range(pad_num, m - pad_num):
27         for j in range(pad_num, n - pad_num):
28             output_image[i, j] = np.sum(filter_template * input_image_cp[i - pad_num:i + pad_num + 1, j - pad_num:j + pad_num + 1]) / (filter_size ** 2)
29
30     output_image = output_image[pad_num:m - pad_num, pad_num:n - pad_num]  # 裁剪
31
32     return output_image

原文地址:https://www.cnblogs.com/iwuqing/p/11380131.html

时间: 2024-11-01 20:01:56

均值滤波器(平滑空间滤波器)基本原理及Python实现的相关文章

【图像处理笔记】平滑空间滤波器

平滑空间滤波器是低频增强的空间滤波技术.它的目的有两类:一是模糊处理,二是降低噪声.本文介绍的平滑空间滤波器也分为两类,一类是线性滤波器,比如最简单的简单平均法:另一类是统计排序滤波器. 下面我们先来说说平滑线性滤波器. 平滑线性空间滤波器的输出(响应)是包含在滤波器模板邻域内的像素的简单平均值.这些滤波器有时也称为均值滤波器.也可以把它们归入低通滤波器. 这种处理的结果降低了图像灰度的尖锐变化.由于典型的随机噪声由灰度级的急剧变化组成,因此常见的平滑处理的应用就是降噪. 然而,由于图像边缘(几

中值滤波器(平滑空间滤波器)基本原理及Python实现

1. 基本原理 一种典型的非线性滤波器就是中值滤波器,它使用像素的一个领域内的灰度的中值来代替该像素的值.中值滤波器通常是处理椒盐噪声的一种有效的手段. 2. 测试结果 图源自skimage 3. 代码 1 import numpy as np 2 3 def median_filter(input_image, filter_size): 4 ''' 5 中值滤波器 6 :param input_image: 输入图像 7 :param filter_size: 滤波器大小 8 :return

数字图像处理-空间域处理-空间滤波-锐化空间滤波器

参考自:数字图像处理第三版-冈萨勒斯 锐化处理的主要目的是突出灰度的过渡部分.增强边缘和其他突变(噪声),削弱灰度变化缓慢的区域. 注意:垂直方向是x,水平方向是y 基础 图像模糊可用均值平滑实现.因均值处理与积分类似,在逻辑上,我们可以得出锐化处理可由空间微分来实现.微分算子的响应强度与图像的突变程度成正比,这样,图像微分增强边缘和其他突变,而削弱灰度变化缓慢的区域. 微分算子必须保证以下几点:(1)在恒定灰度区域的微分值为0:(2)在灰度台阶或斜坡处微分值非0:(3)沿着斜坡的微分值非0 一

数字图像处理- 3.6 锐化空间滤波器

Reference Link : http://blog.csdn.net/xz_rabbit/article/details/17999315 Reference Link : http://www.cnblogs.com/salan668/p/3560197.html 3.6 锐化空间滤波器 锐化处理的主要目的是突出图像中的细节或者增强被模糊了的细节,这种模糊不是由于错误操作,就是特殊图像获取方法的固有印象.总的来说,微分算子的响应强度与图像在该店(应用了算子)的突变程度有关.这样一来,图像

几种常见空间滤波器MATLAB实现

本文链接:https://blog.csdn.net/LYduring/article/details/80443573 一.目的实现算术均值滤波器.几何均值滤波器.中值滤波器.修正的阿尔法均值滤波器.自适应中值滤波器,并比较不同滤波器的降噪结果. 二.代码代码的思路如下: (1)先对原始的电路图先后进行加高斯噪声和椒盐噪声:之后设置滤波器的模板大小为5*5,分别对被噪声污染的图像进行算术均值.几何均值.中值.修正的阿尔法滤波,并输出图像,方便结果比较. (2)为了比较中值滤波器和自适应中值滤波

锐化空间滤波器

锐化处理主要目的是突出灰度过度部分. 二阶微分-拉普拉斯算子锐化 两变量的离散拉普拉斯算子是: void laplaceSharpenl(){ auto im = imread("/Users/qixiangzhang/Desktop/openCV/jy.png"); Mat dst; Mat kernel = (Mat_<float>(3,3) << 0,-1,0,-1,5,-1,0,-1,0); filter2D(im, dst, im.depth(), k

函数fspecial支持的空间滤波器(书上的截图)

motion  不太理解?

深度滤波器(3)——深度滤波器的原理及实现

在前两篇文章中,我们介绍了三角化恢复深度信息,并对三角化过程中的误差进行了分析和讨论. 今天,我们就进入我们这个系列的正题:深度滤波器的原理及实现. 一提到深度滤波器,大家肯定首先会觉得深不可测,听名字就觉得高大上.其实,有了前面的预备知识,不难理解今天要讲解的深度滤波器的原理. 我们今天给大家介绍的是比较简单的高斯分布假设下的深度滤波器. 高斯分布是自然界中最常见的一种分布形式,并且也符合绝大部分的自然情况.简单起见,我们先假设三角化后恢复的深度值符合高斯分布.对于像素点的深度值d,满足: P

IIR滤波器和FIR滤波器的区别与联系zz

  -------------------------------------------------------------------------------------------------- 1.两种滤波器都是数字滤波器.根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器.对于FIR滤波器,冲激响应在有限时间内衰减为零,其输出仅取决于当前和过去的输入信号值.对于IIR滤波器,冲激响应理论上应会无限持续,其输出不仅取决于当前和过去的输入信号值,