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 正则表达式操作指南
May 04 Python
Python显示进度条的方法
Sep 20 Python
Python中http请求方法库汇总
Jan 06 Python
Python实现带参数的用户验证功能装饰器示例
Dec 14 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
Flask框架工厂函数用法实例分析
May 25 Python
python中的decimal类型转换实例详解
Jun 26 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
python读取图片的几种方式及图像宽和高的存储顺序
Feb 11 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 Python
Python连续赋值需要注意的一些问题
Jun 03 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 日期时间处理函数小结
2009/12/18 PHP
PHP中16个高危函数整理
2019/09/19 PHP
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
浅谈Vue2.0父子组件间事件派发机制
2018/01/08 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
整理Python最基本的操作字典的方法
2015/04/24 Python
Python发送email的3种方法
2015/04/28 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
Django choices下拉列表绑定实例
2020/03/13 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
Structs界面控制层技术
2013/10/11 面试题
中式餐厅创业计划书范文
2014/01/23 职场文书
运动会入场式解说词
2014/02/18 职场文书
村班子对照检查材料
2014/08/18 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
庆祝国庆节标语
2014/10/09 职场文书
财务部岗位职责
2015/02/03 职场文书
班主任班级管理心得体会
2016/01/07 职场文书