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 相关文章推荐
wxPython使用系统剪切板的方法
Jun 16 Python
用Eclipse写python程序
Feb 10 Python
python 按照固定长度分割字符串的方法小结
Apr 30 Python
实用自动化运维Python脚本分享
Jun 04 Python
python导入模块交叉引用的方法
Jan 19 Python
Python OS模块实例详解
Apr 15 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
Django中的session用法详解
Mar 09 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
Feb 07 Python
Python实现简单的2048小游戏
Mar 01 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 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
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
python中几种自动微分库解析
2019/08/29 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
局域网定义和特性
2016/01/23 面试题
《泉水》教学反思
2014/04/11 职场文书
社区志愿者活动总结
2014/06/26 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
2015大学生求职信范文
2015/03/20 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
详细总结Python常见的安全问题
2021/05/21 Python
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python