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解释执行原理分析
Aug 22 Python
python根据文件大小打log日志
Oct 09 Python
Python实现的手机号归属地相关信息查询功能示例
Jun 08 Python
django使用html模板减少代码代码解析
Dec 12 Python
Python Socket使用实例
Dec 18 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 Python
Python实现寻找回文数字过程解析
Jun 09 Python
使用python求斐波那契数列中第n个数的值示例代码
Jul 26 Python
python获取linux系统信息的三种方法
Oct 14 Python
python实现web邮箱扫描的示例(附源码)
Mar 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
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
简单谈谈Python中的闭包
2016/11/30 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
Python编程把二叉树打印成多行代码
2018/01/04 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
Python内存管理实例分析
2019/07/10 Python
用python批量移动文件
2021/01/14 Python
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
五年级科学教学反思
2014/02/05 职场文书
出国留学担保书
2014/05/20 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
大学同学聚会感言
2015/07/30 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
Python中22个万用公式的小结
2021/07/21 Python
python 进阶学习之python装饰器小结
2021/09/04 Python
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android