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的paramiko模块实现远程控制和传输示例
Oct 13 Python
python实现简易云音乐播放器
Jan 04 Python
django ajax json的实例代码
May 29 Python
python实现字符串和字典的转换
Sep 29 Python
python绘制散点图并标记序号的方法
Dec 11 Python
基于python实现高速视频传输程序
May 05 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
基于python实现文件加密功能
Jan 06 Python
Python面向对象编程基础实例分析
Jan 17 Python
Python建造者模式案例运行原理解析
Jun 29 Python
python try...finally...的实现方法
Nov 25 Python
使用pandas模块实现数据的标准化操作
May 14 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中var_export与var_dump的区别分析
2010/08/21 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
js window.event对象详尽解析
2009/02/17 Javascript
Jquery下的26个实用小技巧(jQuery tips, tricks &amp; solutions)
2010/03/01 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
js实现列表按字母排序
2020/08/11 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Django Celery异步任务队列的实现
2019/07/24 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
python——全排列数的生成方式
2020/02/26 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
临时租车协议范本
2014/09/23 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
pandas数值排序的实现实例
2021/07/25 Python
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android
Ajax实现三级联动效果
2021/10/05 Javascript
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS