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基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
python实现数据图表
Jul 29 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
Python + selenium自动化环境搭建的完整步骤
May 19 Python
python实现自动网页截图并裁剪图片
Jul 30 Python
python实现彩票系统
Jun 28 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
python实现爬取百度图片的方法示例
Jul 06 Python
python celery分布式任务队列的使用详解
Jul 08 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
Nov 30 Python
Python使用进程Process模块管理资源
Mar 05 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 VS ASP
2006/10/09 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
PHP生成RSS文件类实例
2014/12/05 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
python中的句柄操作的方法示例
2019/06/20 Python
Python 装饰器原理、定义与用法详解
2019/12/07 Python
解决Pytorch训练过程中loss不下降的问题
2020/01/02 Python
python 回溯法模板详解
2020/02/26 Python
使用Python构造hive insert语句说明
2020/06/06 Python
党课培训主持词
2014/04/01 职场文书
医学生求职自荐书
2014/06/12 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书