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里对list中的整数求平均并排序
Sep 12 Python
Python文件及目录操作实例详解
Jun 04 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
Apr 17 Python
python高阶爬虫实战分析
Jul 29 Python
使用Python实现图像标记点的坐标输出功能
Aug 14 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
django 取消csrf限制的实例
Mar 13 Python
Python爬虫JSON及JSONPath运行原理详解
Jun 04 Python
如何用python 操作zookeeper
Dec 28 Python
python编程的核心知识点总结
Feb 08 Python
Python内置的数据类型及使用方法
Apr 13 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中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP运行模式汇总
2016/11/06 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
再谈javascript原型继承
2014/11/10 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
jQuery中innerWidth()方法用法实例
2015/01/19 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
python 日志增量抓取实现方法
2018/04/28 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
介绍一下Mysql的存储引擎
2015/02/12 面试题
职务说明书范文
2014/05/07 职场文书
写字楼租赁意向书
2014/07/30 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
企业百日安全活动总结
2015/05/07 职场文书
微信小程序实现聊天室功能
2021/06/14 Javascript
vue特效之翻牌动画
2022/04/20 Vue.js
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL