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使用Mechanize模块编写爬虫的要点解析
Mar 31 Python
用Python设计一个经典小游戏
May 15 Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 Python
python爬取m3u8连接的视频
Feb 28 Python
python读取中文txt文本的方法
Apr 12 Python
Python 判断奇数偶数的方法
Dec 20 Python
Django框架封装外部函数示例
May 28 Python
简单了解Python生成器是什么
Jul 02 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
Django celery异步任务实现代码示例
Nov 26 Python
Python打包为exe详细教程
May 18 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
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
2013/06/20 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
js表单验证实例讲解
2016/03/31 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
JavaScript实现鼠标点击导航栏变色特效
2017/02/08 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
利用Python开发实现简单的记事本
2016/11/15 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
用python编写第一个IDA插件的实例
2018/05/29 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
python 实现批量图片识别并翻译
2020/11/02 Python
Linux Interview Questions For software testers
2012/06/02 面试题
上班迟到检讨书
2014/01/10 职场文书
《画》教学反思
2014/04/14 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
总账会计岗位职责
2015/04/02 职场文书
校园新闻稿范文
2015/07/18 职场文书