1. 基本原理

使用元素的领域内像素的平均值代替该元素,可明显的降低图像灰度的尖锐变换。它的一种重要应用是模糊处理:得到感兴趣的区域的粗略表示,将次要的/小的元素与背景融合,使得主要的/较大的元素变得易于检测
 
$$ R=\frac{1}{m} \sum_{i=1}^{m} z_{i} $$
 
  • $m$为滤波器大小

2. 测试结果

图源自skimage

3. 代码

 import numpy as np

 def means_filter(input_image, filter_size):
'''
均值滤波器
:param input_image: 输入图像
:param filter_size: 滤波器大小
:return: 输出图像 注:此实现滤波器大小必须为奇数且 >= 3
'''
input_image_cp = np.copy(input_image) # 输入图像的副本 filter_template = np.ones((filter_size, filter_size)) # 空间滤波器模板 pad_num = int((filter_size - 1) / 2) # 输入图像需要填充的尺寸 input_image_cp = np.pad(input_image_cp, (pad_num, pad_num), mode="constant", constant_values=0) # 填充输入图像 m, n = input_image_cp.shape # 获取填充后的输入图像的大小 output_image = np.copy(input_image_cp) # 输出图像 # 空间滤波
for i in range(pad_num, m - pad_num):
for j in range(pad_num, n - pad_num):
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) output_image = output_image[pad_num:m - pad_num, pad_num:n - pad_num] # 裁剪 return output_image

最新文章

  1. 通过/etc/rc.local实现开机自动拉起服务
  2. git 查看、创建、删除 本地,远程 分支
  3. [转载]Windows 7 IIS (HTTP Error 500.21 - Internal Server Error)解决
  4. HTML5课程大纲/学习路线
  5. Ubuntu下安装Qt4.5(包括X86和ARM版本)
  6. RabbitMQ-清空队列中(一个channel或连接中)的Unacknowledged状态的消息
  7. Android --- 字符串\n的换行问题
  8. appium--xpath定位元素用法
  9. 《Linux就该这么学》第十六天课程
  10. 网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
  11. requirejs amd module load example
  12. iOS 定时器的比较
  13. vue中使用swiper并自定义分页器样式
  14. Hibernate 延迟载入
  15. 修改myelipse中部署路径deploy location内容的方法
  16. 一起做RGB-D SLAM (4)
  17. JqGrid的学习
  18. Excel累加上一行的数值
  19. 一般处理程序ashx中用session存储数据
  20. Windows10 下安装配置IIS + MySQL5.7.19 + nginx1.12.1 + php7.1.7

热门文章

  1. 51 Nod 1069 Nim游戏
  2. luoguP1468 派对灯 Party Lamps x
  3. 货郎担问题(TSP问题)
  4. [CSP-S模拟测试]:陶陶摘苹果(线段树维护单调栈)
  5. [CSP-S模拟测试]:花(DP)
  6. Android学习_7/24
  7. 「CEOI2008」order
  8. xstream解析xml时遇到特殊字符出错
  9. 浏览器端-W3School-HTML:HTML DOM Base 对象
  10. gradle 离线模式offline 用法