目录

原理(冈萨雷斯第四版p235):

代码:

结果:


原理(冈萨雷斯第四版p235):

代码:

import cv2
import numpy as np
from matplotlib import pyplot as plt# for gray image
def auto_median_filter(img, S_max):output = img.copy()def class_B(z_xy, z_med, z_max, z_min):if (z_min < z_xy) & (z_xy < z_max):return z_xyelse:return z_medS_ori = 3copy = cv2.copyMakeBorder(img, *[S_ori // 2] * 4, borderType=cv2.BORDER_DEFAULT)  # 补零for i in range(img.shape[0]):for j in range(img.shape[1]):def class_A(copy, S_ori=3):board = S_ori // 2z_med = np.median(copy[i:i + board, j:j + board])z_max = np.max(copy[i:i + board, j:j + board])z_min = np.min(copy[i:i + board, j:j + board])if (z_min < z_med) & (z_med < z_max):output[i, j] = class_B(copy[i, j], z_med, z_max, z_min)else:# next_size = S_ori + 2next_size = cv2.copyMakeBorder(copy, *[1] * 4, borderType=cv2.BORDER_DEFAULT)  # 增尺寸S_ori = S_ori + 2if S_ori <= S_max:return class_A(next_size, S_ori)else:output[i, j] = z_medclass_A(copy, 3)return output.astype(np.uint8)def label_def(): # 定义坐标数字字体及大小plt.xticks(fontproperties='Times New Roman', size=8)plt.yticks(fontproperties='Times New Roman', size=8)if __name__ == '__main__':img = cv2.imread('D://pictures//Fig0335(a)(ckt_board_saltpep_prob_pt05).tif', 0)img_median = cv2.medianBlur(img, 7)out = auto_median_filter(img, 7)plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = Falseplt.subplot(131), plt.imshow(img, "gray"), plt.title('椒盐噪声', fontsize='small'), label_def()plt.subplot(132), plt.imshow(img_median, "gray"), plt.title('中值滤波', fontsize='small'), label_def()plt.subplot(133), plt.imshow(out, "gray"), plt.title('自适应中值滤波', fontsize='small'), label_def()plt.show()

结果:

原文描述:

自适应中值滤波器的另一个优点是它会在试图保留图像细节的同时平滑非冲激噪声,而传统中值滤波器是做不到这一点的。

可见实验结果证实了这一点!

python实现自适应中值滤波器相关推荐

  1. 第5章 Python 数字图像处理(DIP) - 图像复原与重建11 - 空间滤波 - 自适应滤波器 - 自适应局部降噪、自适应中值滤波器

    标题 自适应滤波器 自适应局部降噪滤波器 自适应中值滤波器 自适应滤波器 自适应局部降噪滤波器 均值是计算平均值的区域上的平均灰度,方差是该区域上的图像对比度 g(x,y)g(x, y)g(x,y)噪 ...

  2. 自适应中值滤波器python实现

    自适应中值滤波器的基本原理: Zxy:图像中第x行第y列个像素点的灰度值: Sxy:滤波器窗口,该区域中心点为图像中第y行第x列个像素点: Zmin:Sxy中最小的灰度值: Zmax:Sxy中最大的灰 ...

  3. 【youcans 的 OpenCV 例程 200 篇】101. 自适应中值滤波器

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  4. python 套索回归_适用于python的自适应套索

    python 套索回归 This is my second post on the series about penalized regression. In the first one we tal ...

  5. python+openCV 自适应阈值分割

    当图像各局部亮度不同时,全局阈值就很难将背景和目标分割.因此提出了自适应阈值,即在图像的不同区域采用不同的阈值进行分割.利用函数cv2.adaptiveThreshold()进行分割. cv2.ada ...

  6. pythoncanny边缘检测自适应阈值_基于python实现自适应阈值的canny边缘检测

    opencv中给出了canny边缘检测的接口,直接调用: ret = cv2.canny(img,t1,t2) 即可得到边缘检测的结果ret.其中,t1,t2是需要人为设置的阈值.有不少论文研究了自动 ...

  7. python canny优化_基于python的自适应阈值的Canny边缘检测

    canny边缘检测的接口在opencv中给出,直接调用: ret = cv2.canny(img,t1,t2) 您可以获取边缘检测结果. 其中,t1,t2是需要手动设置的阈值. 许多文献研究了自动阈值 ...

  8. python tableview 自适应_iOS8下UITableView的contentsize自动变化问题

    遇到一个问题,一个页面中有一个UITableView,在iOS8中点击里面的图片或者链接push到下一个页面再返回时,TableView的底部就被遮盖在屏幕底部了,只有滑动到底部的瞬间能看到.而iOS ...

  9. python实现自适应分辨率截取桌面图片并识别图片文字

    1.先获取桌面中间截图或者txt文本窗口截图 2.对截图进行二值化处理,再进行图像识别,识别其中的文字 不多说,上代码: from PIL import Image from PyQt5.QtWidg ...

  10. 【图像处理】基于自适应中值滤波器处理被椒盐噪声干扰的图像(Matlab代码实现)

最新文章

  1. 没想到!大数据发现微信上使用最多的表情竟是...原谅很多人不知道
  2. 为什么用redis?
  3. 步步为营UML建模系列总结
  4. 清华裴丹:AIOps 落地路线图
  5. verilog中的综合与不可综合
  6. 前端学习(3001):vue+element今日头条管理--项目初始化总结
  7. 三维点云目标提取总结(续)
  8. 对虚拟目录的操作(转)
  9. java excel_java生成excel并下载功能
  10. 运维工程师必须掌握的技巧
  11. 奇安信代码安全实验室帮助微软修复两个 “重要” 漏洞,获官方致谢
  12. 阿里面试官常问的TCP和UDP,你真的弄懂了吗?
  13. Clash of Clans通关秘诀
  14. IIS架设PHP网站
  15. comsol服务器的性能如何,COMSOL Server
  16. html做相册浏览,ul结合CSS制作网页相册滑动浏览效果
  17. Excel 合并单元格 ,换行,过滤空单元格
  18. nginx空白图片 访问打点
  19. webpack 处理es6转es5需要使用babel-loader
  20. ThinkJS 模块

热门文章

  1. win7装xp双系统_9102年还用XP是怎样的体验?告诉你XP凉得有多透
  2. JAVA实现网页版斗地主_Java实现斗地主案例
  3. Acme CAD Converter 2019简体中文直装破解版
  4. axure 破解 key
  5. C语言编程轰炸,利用C语言编写一个数字炸弹小游戏
  6. GB2312-80 汉字机内码
  7. Python3使用BFS实现湖北省到全国省级行政区
  8. 堆排序时间复杂度计算
  9. Chrome 私人珍藏-AdBlock插件实现浏览器广告屏蔽,超强力
  10. 复杂的拉普拉斯逆变换