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 相关文章推荐
pygame学习笔记(6):完成一个简单的游戏
Apr 15 Python
python编程开发之类型转换convert实例分析
Nov 13 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
python实现屏保计时器的示例代码
Aug 08 Python
python程序控制NAO机器人行走
Apr 29 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
python requests指定出口ip的例子
Jul 25 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
python-numpy-指数分布实例详解
Dec 07 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
用python批量移动文件
Jan 14 Python
详解Python中__new__方法的作用
Mar 31 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中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
JS中style属性
2006/10/11 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Python中使用PDB库调试程序
2015/04/05 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python编写弹球游戏的实现代码
2018/03/12 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
Python容器类型公共方法总结
2020/08/19 Python
python里反向传播算法详解
2020/11/22 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
英国家电直销:Appliances Direct
2016/09/22 全球购物
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
优秀党员转正的自我评价
2013/10/06 职场文书
团日活动总结
2014/04/28 职场文书
护士医德考评自我评价
2015/03/03 职场文书
高二英语教学反思
2016/03/03 职场文书
终止合同协议书范本
2016/03/22 职场文书