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 相关文章推荐
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
python中使用zip函数出现错误的原因
Sep 28 Python
Python3对称加密算法AES、DES3实例详解
Dec 06 Python
Python3 使用cookiejar管理cookie的方法
Dec 28 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
Jun 28 Python
python使用yield压平嵌套字典的超简单方法
Nov 02 Python
Python3实现将一维数组按标准长度分隔为二维数组
Nov 29 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 Python
Python Matplotlib绘制动画的代码详解
May 30 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 Mysql类 可以参考学习熟悉下
2009/06/21 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
htm调用JS代码
2007/03/15 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
详解Vue源码之数据的代理访问
2018/12/11 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
python3抓取中文网页的方法
2015/07/28 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
行政总经理岗位职责
2013/12/05 职场文书
中队活动总结
2014/08/27 职场文书
学校四风对照检查材料
2014/08/28 职场文书
党员对照检查材料
2014/09/22 职场文书
企业法人授权委托书
2014/09/25 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python