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中的两个内置模块介绍
Apr 05 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
Python网络编程详解
Oct 31 Python
python 不以科学计数法输出的方法
Jul 16 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
Aug 03 Python
python通过配置文件共享全局变量的实例
Jan 11 Python
python矩阵/字典实现最短路径算法
Jan 17 Python
python绘制直方图和密度图的实例
Jul 08 Python
Pandas实现dataframe和np.array的相互转换
Nov 30 Python
Python垃圾回收机制三种实现方法
Apr 27 Python
Python3获取cookie常用三种方案
Oct 05 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 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+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
用循环或if语句从json中取数据示例
2014/08/18 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
react-navigation之动态修改title的内容
2018/09/26 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
2019/12/20 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
python修改注册表终止360进程实例
2014/10/13 Python
python处理二进制数据的方法
2015/06/03 Python
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python字符串和字典相关操作的实例详解
2017/09/23 Python
解决Spyder中图片显示太小的问题
2018/04/27 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
python程序 创建多线程过程详解
2019/09/23 Python
Python中的整除和取模实例
2020/06/03 Python
Python 多进程原理及实现
2020/12/21 Python
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
汽修专业学生自我鉴定
2013/11/16 职场文书
老公给老婆的保证书
2014/04/28 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书