文档章节

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

o
 osc_g8254g7s
发布于 2019/08/19 22:26
字数 287
阅读 61
收藏 0

精选30+云产品,助力企业轻松上云!>>>

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

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

平时使用的Lszrz到底是什么协议?说说Xmodem/Ymodem/Zmodem

XMODEM, YMODEM, and ZMODEM 由于平时使用rz/sz较多,r/s好理解,一个send一个receive。但是由不太清楚z是什么意思,故有此文。 sx/rx, sb/rb (b=batch)和sz/rz分别实现了xmodem,ymodem和z...

独钓渔
23分钟前
17
0
真正的强智能时代已经到来。道翰天琼认知智能机器人平台API大脑。

最近,我常说人工智能的寒冬快要来了,提醒业界要做好思想准备,但同时我也说:冬天来了,春天就不会远了…… 2019年6月我写了篇文章《深度学习的问题究竟在哪?》,说到深度学习的一个主要问...

jackli2020
32分钟前
24
0
什么是控制型人格,控制型人格的筛查测试

一、 什么是控制性人格 拥有控制型人格的人,他们会尽力的隐藏自己的意图,但是又会使用很微妙的方式来利用周围人的弱点,进而占取便宜时,使他们能够得到自己想要的东西。这类人的控制欲非常...

蛤蟆丸子
40分钟前
14
0
【Spring】Spring AOP 代理对象生成逻辑源码分析

1. spring aop案例(POJO注入) 1.0 被代理接口 TargetInterface /** * 被代理的接口 * @author Yang ZhiWei */public interface TargetInterface { void show(); String show......

ZeroneLove
49分钟前
36
0
聊聊dubbo-go的gracefulShutdownFilter

序 本文主要研究一下dubbo-go的gracefulShutdownFilter gracefulShutdownFilter dubbo-go-v1.4.2/filter/filter_impl/graceful_shutdown_filter.go type gracefulShutdownFilter struct {......

go4it
50分钟前
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部