python手写均值滤波


Posted in Python onFebruary 19, 2020

本文实例为大家分享了python手写均值滤波的具体代码,供大家参考,具体内容如下

原理与卷积类似,设置一个n*n的滤波模板,滤波模板内的值累加除以模板的尺寸大小取平均为滤波后的值。

代码如下:

import cv2 as cv
import numpy as np


#均值滤波
def meansBlur(src, ksize):
 '''
 :param src: input image
 :param ksize:kernel size
 :return dst: output image
 '''
 dst = np.copy(src) #创建输出图像
 kernel = np.ones((ksize, ksize)) # 卷积核
 padding_num = int((ksize - 1) / 2) #需要补0
 dst = np.pad(dst, (padding_num, padding_num), mode="constant", constant_values=0)
 w, h = dst.shape
 dst = np.copy(dst)
 for i in range(padding_num, w - padding_num):
  for j in range(padding_num, h - padding_num):
   dst[i, j] = np.sum(kernel * dst[i - padding_num:i + padding_num + 1, j - padding_num:j + padding_num + 1]) \
      // (ksize ** 2)
 dst = dst[padding_num:w - padding_num, padding_num:h - padding_num] #把操作完多余的0去除,保证尺寸一样大
 return dst


img_path = r"F:\03.png"
img = cv.imread(img_path,0)
dst = meansBlur(img,5)
cv.imshow('src',img)
cv.imshow('dst',dst)
print(dst)
cv.waitKey(0)

注释:红框表示两个for循环的范围,i - padding_num:i + padding_num + 1表示第i行上移padding_num行,下移padding_num,+1是因为list列表为左闭右开区间,右边的元素取不到值。padding表示周围填充一圈。

python手写均值滤波

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python的Tornado框架中实现简单的在线代理的教程
May 02 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
深入解析Python小白学习【操作列表】
Mar 23 Python
OpenCV+Python--RGB转HSI的实现
Nov 27 Python
PyTorch中topk函数的用法详解
Jan 02 Python
python误差棒图errorbar()函数实例解析
Feb 11 Python
python可迭代对象去重实例
May 15 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
用python实现一个简单的验证码
Dec 09 Python
python中@contextmanager实例用法
Feb 07 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 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
浅谈图像处理中掩膜(mask)的意义
Feb 19 #Python
You might like
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
php中file_exists函数使用详解
2015/05/08 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
javascript 动态加载 css 方法总结
2009/07/11 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
javascript实现时钟动画
2020/12/03 Javascript
[00:27]DOTA2次级职业联赛 - Lilith战队宣传片
2014/12/01 DOTA
python中执行shell命令的几个方法小结
2014/09/18 Python
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
Python 统计字数的思路详解
2018/05/08 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
给校长的建议书
2014/03/12 职场文书
《称象》教学反思
2014/04/25 职场文书
安全宣传标语
2014/06/10 职场文书
法人委托书的范本格式
2014/09/11 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
电工实训报告总结
2014/11/05 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
2019同学聚会主持词
2019/05/06 职场文书
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技