使用Python实现窗口滑动功能,并对椒盐噪声进行去噪,比较两者去噪效果。

均值滤波:

中值滤波:中值滤波的实现原理是把数字图像中一点的值用该点的一个区域的各个点的值的中值代替。

import cv2
import numpy as np
from itertools import chain
def padding_0(img):a = np.insert(img, 0, 0, 0)b = np.insert(a, 0, 0, 0)c = np.insert(b, 0, 0, 1)d = np.insert(c, 0, 0, 1)h_zeros = np.zeros((d.shape[0], 1))e = np.hstack((d, h_zeros))f = np.hstack((e, h_zeros))w_zeros = np.zeros((1, f.shape[1]))g = np.vstack((f, w_zeros))img = np.vstack((g, w_zeros))# no_padding(img)return imgdef middle_flite_pcopy(img):img = padding_0(img)for i in range(2, img.shape[0] - 2):for j in range(2, img.shape[1] - 2):mat = np.array([[img[i - 2, j - 2], img[i - 2, j - 1], img[i - 2, j], img[i - 2, j + 1], img[i - 2, j + 1]],[img[i - 1, j - 2], img[i - 1, j - 1], img[i - 1, j], img[i - 1, j + 1], img[i - 1, j + 1]],[img[i, j - 2], img[i, j - 1], img[i, j], img[i, j + 1], img[i, j + 1]],[img[i + 1, j - 2], img[i + 1, j - 1], img[i + 1, j], img[i + 1, j + 1], img[i + 1, j + 1]],[img[i + 2, j - 2], img[i + 2, j - 1], img[i + 2, j], img[i + 2, j + 1], img[i + 2, j + 1]]])c = list(chain(*mat))sort_list = sorted(c)img[i, j] = sort_list[12]return imgdef mean_fliter(img):img=padding_0(img)for i in range(2, img.shape[0] - 2):for j in range(2, img.shape[1] - 2):mat = np.array([[img[i - 2, j - 2], img[i - 2, j - 1], img[i - 2, j], img[i - 2, j + 1], img[i - 2, j + 1]],[img[i - 1, j - 2], img[i - 1, j - 1], img[i - 1, j], img[i - 1, j + 1], img[i - 1, j + 1]],[img[i, j - 2], img[i, j - 1], img[i, j], img[i, j + 1], img[i, j + 1]],[img[i + 1, j - 2], img[i + 1, j - 1], img[i + 1, j], img[i + 1, j + 1], img[i + 1, j + 1]],[img[i + 2, j - 2], img[i + 2, j - 1], img[i + 2, j], img[i + 2, j + 1], img[i + 2, j + 1]]])mean = np.sum(mat) / 25img[i, j] = meanreturn imgimg = cv2.imread("./noise11.jpg", 0)
img1 = cv2.imread("./noise11.jpg", 0)
img2 = mean_fliter(img/255)
middle_flite_pcopy_img = middle_flite_pcopy(img/255)
cv2.imshow("mean", img2)
cv2.imshow("middle", middle_flite_pcopy_img)
cv2.imshow("origenal", img1)
cv2.waitKey(0)

原图:

均值:

中值:

均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。特别是椒盐噪声
中值滤波采用非线性的方法,它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘,选择适当的点来替代污染点的值,所以处理效果好,对椒盐噪声表现较好

均值滤波与中值滤波(python实现)相关推荐

  1. Python 图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波

    作者 | 杨秀璋,责编 | 夕颜 题图  | 视觉中国 出品 | CSDN博客 本篇文章主要讲解Python调用OpenCV实现图像平滑,包括四个算法:均值滤波.方框滤波.高斯滤波和中值滤波.全文均是 ...

  2. [Python图像处理] 四十一.Python图像平滑万字详解(均值滤波、方框滤波、高斯滤波、中值滤波、双边滤波)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  3. [Python图像处理] 四.图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  4. 《OpenCv视觉之眼》Python图像处理五 :Opencv图像去噪处理之均值滤波、方框滤波、中值滤波和高斯滤波

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  5. 【图像处理】——图像滤波(Python+opencv实现三种方法:均值滤波、中值滤波、高斯滤波等)

    目录 一.什么是滤波以及滤波的目的? 二.均值滤波(cv2.blur()) 1.原理 2.关键代码 3.封装代码 二.中值滤波(cv2.medianBlur()) 1.原理 2.关键代码 3.封装代码 ...

  6. Python实现图像的椒盐噪声添加和基础的平滑处理(均值滤波与中值滤波)

    均值滤波与中值滤波是最常见的两种平滑的方式,尤其是中值滤波能起到强大的降噪效果. 本文内容分为三部分: 1.实现添加图片的椒盐噪声 2.实现调用内置函数进行均值和中值滤波 3.自编函数深刻理解均值和中 ...

  7. 【图像处理】 均值滤波、中值滤波和高斯滤波

    [图像处理] 均值滤波.中值滤波和高斯滤波 均值滤波 中值滤波 高斯滤波 结语 均值滤波 均值滤波是一种线性滤波,会导致图像模糊. 均值滤波器卷积核:卷积核中心点对应原图上的位置的值,变为卷积核覆盖的 ...

  8. 滤波算法——均值滤波,中值滤波,一阶(αβ)滤波,卡尔曼滤波

    滤波算法--均值滤波,中值滤波,一阶(αβ)滤波,卡尔曼滤波 因工作涉及到数据滤波(滤噪)处理,汇总了一些网上简单的滤波算法,方便日后查看. 滤波算法包括:均值滤波,中值滤波,一阶(αβ)滤波,卡尔曼 ...

  9. 均值滤波java_均值滤波,中值滤波,最大最小值滤波

    http://blog.csdn.net/fastbox/article/details/7984721 讨论如何使用卷积作为数学工具来处理图像,实现图像的滤波,其方法包含以下几种,均值 滤波,中值滤 ...

最新文章

  1. pandas使用groupby.last函数获取每个组中的最后一个值实战:groupby.last函数获取每个组中的最后一个值、groupby.nth函数获取每个组中的最后一个值
  2. 基于Kubernetes 的机器学习工作流
  3. Cartographer安装
  4. 科大讯飞语音引擎_科大讯飞的1024:语音技术进一步突破,发布专用芯片
  5. SpringMVC(十七-二十) ModelAttribute 注解
  6. ReactiveCocoa入门
  7. js逆向网易云加密记录
  8. 《HTML5与CSS3实战指南》——第2章 HTML5样式的标记2.1 The HTML5 Herald简介
  9. 高并发异步uwsgi+web.py+gevent
  10. es6 数组去重,数组里面的对象去重
  11. nginx基于htpasswd安全验证
  12. Batch Normalization(BN层)详解
  13. 分享一段可以直接下载新浪微博视频的小程序
  14. PowerVR SGX
  15. 谷歌浏览器崩溃设置崩溃_用浏览器崩溃
  16. 图片转icon图标并在项目中引用
  17. 限流的抖音号怎么养?养号方法是什么?
  18. 基于摄像头实现手写输入字符功能(视频手写)
  19. 如何制定软件测试策略
  20. 基于Linux搭建Web网站

热门文章

  1. 天翼云、移动云ubuntu服务器分区和磁盘挂载步骤
  2. 春雨(程序员减压儿歌)
  3. pandas合并文件夹下的excel文件
  4. SQL数据库msdb置疑(急)
  5. RX5600XT与RTX2060对比哪个好,哪款显卡性能更强?
  6. Java中Double与BigDecimal的互转,Date和LocalDateTime互转
  7. 编程语言排行榜2021年3月
  8. 颜色的前世今生22·显示器偏色怎么办?
  9. LOL自动走A和释放技能原理及安全防护
  10. 斗罗大陆CSS_204687