opencv+python实现均值滤波


Posted in Python onFebruary 19, 2020

本文实例为大家分享了opencv+python实现均值滤波的具体代码,供大家参考,具体内容如下

原理

均值滤波其实就是对目标像素及周边像素取平均值后再填回目标像素来实现滤波目的的方法,当滤波核的大小是3×3 3\times 33×3时,则取其自身和周围8个像素值的均值来代替当前像素值。
均值滤波也可以看成滤波核的值均为 1 的滤波。
优点:算法简单,计算速度快;
缺点:降低噪声的同时使图像产生模糊,特别是景物的边缘和细节部分。

代码

import cv2 as cv
import numpy as np
import math
import copy

def spilt( a ):
 if a/2 == 0:
  x1 = x2 = a/2
 else:
  x1 = math.floor( a/2 )
  x2 = a - x1
 return -x1,x2

def original (i, j, k,a, b,img):
 x1, x2 = spilt(a)
 y1, y2 = spilt(b)
 temp = np.zeros(a * b)
 count = 0
 for m in range(x1, x2):
  for n in range(y1, y2):
   if i + m < 0 or i + m > img.shape[0] - 1 or j + n < 0 or j + n > img.shape[1] - 1:
    temp[count] = img[i, j, k]
   else:
    temp[count] = img[i + m, j + n, k]
   count += 1
 return temp

def average_function(a , b ,img):
 img0 = copy.copy(img)
 for i in range (0 , img.shape[0] ):
  for j in range (2 ,img.shape[1] ):
   for k in range (img.shape[2]):
    temp = original(i, j, k, a, b, img0)
    img[i,j,k] = int ( np.mean(temp))
 return img 
 
def main():
 img0 = cv.imread(r"noise.jpg")

 ave_img = average_function( 3 , 3, copy.copy(img0) ) #(3,3)滤波器大小 

 cv.imshow("ave_img",ave_img) 
 cv.imshow("original",img0)

 cv.waitKey(0)
 cv.destroyAllWindows()

if __name__ == "__main__":
 main()

样例

原图:

opencv+python实现均值滤波

滤波核为3×3 3\times 33×3的均值滤波后:

opencv+python实现均值滤波

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python登录QQ邮箱发信的实现代码
Feb 10 Python
对numpy中数组元素的统一赋值实例
Apr 04 Python
python实现图片文件批量重命名
Mar 23 Python
Python闭包思想与用法浅析
Dec 27 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
Feb 20 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
Jun 13 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
wxPython实现列表增删改查功能
Nov 19 Python
Python 中判断列表是否为空的方法
Nov 24 Python
使用Python实现分别输出每个数组
Dec 06 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 Python
Python中三种花式打印的示例详解
Mar 19 Python
python手写均值滤波
Feb 19 #Python
pytorch实现CNN卷积神经网络
Feb 19 #Python
python+opencv3生成一个自定义纯色图教程
Feb 19 #Python
Python 实现Image和Ndarray互相转换
Feb 19 #Python
python3+opencv生成不规则黑白mask实例
Feb 19 #Python
使用celery和Django处理异步任务的流程分析
Feb 19 #Python
Python Numpy,mask图像的生成详解
Feb 19 #Python
You might like
php foreach、while性能比较
2009/10/15 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
使用webpack5从0到1搭建一个react项目的实现步骤
2020/12/16 Javascript
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
介绍一下OSI七层模型
2012/07/03 面试题
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
表彰会主持词
2014/03/26 职场文书
技术比武方案
2014/05/19 职场文书
最常使用的求职信
2014/05/25 职场文书
2015学校年度工作总结
2015/05/11 职场文书
恋恋笔记本观后感
2015/06/16 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python
利用Redis实现点赞功能的示例代码
2022/06/28 Redis
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript