中值滤波器(平滑空间滤波器)基本原理及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: 输出图像
 9
10     注:此实现滤波器大小必须为奇数且 >= 3
11     ‘‘‘
12     input_image_cp = np.copy(input_image)  # 输入图像的副本
13
14     pad_num = int((filter_size - 1) / 2)  # 输入图像需要填充的尺寸
15
16     input_image_cp = np.pad(input_image_cp, (pad_num, pad_num), mode="constant", constant_values=0)  # 填充输入图像
17
18     m, n = input_image_cp.shape  # 获取填充后的输入图像的大小
19
20     output_image = np.copy(input_image_cp)  # 输出图像
21
22     # 空间滤波
23     for i in range(pad_num, m - pad_num):
24         for j in range(pad_num, n - pad_num):
25             output_image[i, j] = np.median(input_image_cp[i - pad_num:i + pad_num + 1, j - pad_num:j + pad_num + 1])
26
27     output_image = output_image[pad_num:m - pad_num, pad_num:n - pad_num]  # 裁剪
28
29     return output_image

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

时间: 2024-11-11 20:35:16

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

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

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

均值滤波器(平滑空间滤波器)基本原理及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)

数字图像处理- 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 锐化空间滤波器 锐化处理的主要目的是突出图像中的细节或者增强被模糊了的细节,这种模糊不是由于错误操作,就是特殊图像获取方法的固有印象.总的来说,微分算子的响应强度与图像在该店(应用了算子)的突变程度有关.这样一来,图像

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

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

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

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

对比度拉伸(一些基本的灰度变换函数)基本原理及Python实现

1. 基本原理 对比度拉伸是扩展图像灰度级动态范围的处理.通过在灰度级中确定两个点来控制变换函数的形状.下面是对比度拉伸函数中阈值处理的代码示例,阈值为平均值. 2. 测试结果 图源自skimage 3. 代码 1 def contrast_stretch(input_image): 2 ''' 3 对比度拉伸(此实现为阈值处理,阈值为均值) 4 :param input_image: 输入图像 5 :return: 对比图拉伸后的图像 6 ''' 7 input_image_cp = np.c

伽马变换(一些基本的灰度变换函数)基本原理及Python实现

1. 基本原理 变换形式 $$s=cr^{\gamma}$$ c与$\gamma$均为常数 可通过调整$\gamma$来调整该变换,最常用于伽马校正与对比度增强 2. 测试结果 图源自skimage 3. 代码 1 def gamma_transformation(input_image, c, gamma): 2 ''' 3 伽马变换 4 :param input_image: 原图像 5 :param c: 伽马变换超参数 6 :param gamma: 伽马值 7 :return: 伽马变

对数变换(一些基本的灰度变换函数)基本原理及Python实现

1. 基本原理 变换形式如下 $$T(r) = c\lg(r+1)$$ c为常数 由于对数函数的导数随自变量的增大而减小,对数变换将输入窄范围的低灰度值扩展为范围宽的灰度值和宽范围的高灰度值压缩为映射为范围窄灰度值.从视觉上,通常是图片变得更亮了 2. 测试结果 对数变换,参数C=1(图源自skimage) 3. 代码 1 def logarithmic_transformation(input_image, c): 2 ''' 3 对数变换 4 :param input_image: 原图像

使用二阶微分锐化图像(拉普拉斯算子)基本原理及Python实现

1. 拉普拉斯算子 1.1 简介 一种典型的各向同性的微分算子,可用于检测图像中灰度图片的区域 $$ \nabla^{2} f=\frac{\partial^{2} f}{\partial x^{2}}+\frac{\partial^{2} f}{\partial y^{2}} $$ 根据上述的差分近似可以推导出 $$ \nabla^{2} f(x, y)=f(x+1, y)+f(x-1, y)+f(x, y+1)+f(x, y-1)-4 f(x, y) $$ 1.2 锐化过程 使用拉普拉斯过滤