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装饰器的函数式编程详解
Feb 27 Python
Python functools模块学习总结
May 09 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
Python 模板引擎的注入问题分析
Jan 01 Python
python2 与python3的print区别小结
Jan 16 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
Python实现简单的列表冒泡排序和反转列表操作示例
Jul 10 Python
Python实现生成密码字典的方法示例
Sep 02 Python
opencv3/C++图像像素操作详解
Dec 10 Python
Django 删除upload_to文件的步骤
Mar 30 Python
opencv-python图像配准(匹配和叠加)的实现
Jun 23 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中的超全局变量
2006/10/09 PHP
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
ThinkPHP表单自动验证实例
2014/10/13 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
asp 取文本框名称代码
2008/12/02 Javascript
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
js 窗口抖动示例
2013/09/04 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现快速多线程ping的方法
2015/07/15 Python
python 实现的IP 存活扫描脚本
2020/12/10 Python
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
澳大利亚家具商店:Freedom
2020/12/17 全球购物
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
大学毕业生自我评价
2015/03/02 职场文书
公积金具结保证书
2015/05/11 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
mysql分表之后如何平滑上线详解
2021/11/01 MySQL