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 and、or以及and-or语法总结
Apr 14 Python
Python验证码识别处理实例
Dec 28 Python
详解Python中的变量及其命名和打印
Mar 11 Python
200 行python 代码实现 2048 游戏
Jan 12 Python
python os用法总结
Jun 08 Python
python之django母板页面的使用
Jul 03 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 Python
如何理解Python中包的引入
May 29 Python
django rest framework使用django-filter用法
Jul 15 Python
Python定义一个Actor任务
Jul 29 Python
Python代码覆盖率统计工具coverage.py用法详解
Nov 25 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 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内存溢出问题的解决方法
2013/06/25 PHP
详解PHP数组赋值方法
2015/11/07 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
JS实现页面打印功能
2017/03/16 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
python实现网页链接提取的方法分享
2014/02/25 Python
Python isinstance函数介绍
2015/04/14 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
利用Celery实现Django博客PV统计功能详解
2017/05/08 Python
python学生信息管理系统
2018/03/13 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
Python目录和文件处理总结详解
2019/09/02 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
python给list排序的简单方法
2020/12/10 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
缴纳养老保险的证明
2014/01/10 职场文书
校运会口号
2014/06/18 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
Python Matplotlib库实现画局部图
2021/11/17 Python