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通过urllib2爬网页上种子下载示例
Feb 24 Python
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
Python编程中字符串和列表的基本知识讲解
Oct 14 Python
python 简单的多线程链接实现代码
Aug 28 Python
Python实现的计算马氏距离算法示例
Apr 03 Python
python实现人民币大写转换
Jun 20 Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
python之生产者消费者模型实现详解
Jul 27 Python
numpy中的meshgrid函数的使用
Jul 31 Python
postman传递当前时间戳实例详解
Sep 14 Python
Pyinstaller打包Scrapy项目的实现步骤
Sep 22 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
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
jquery 新浪网易的评论块制作
2010/07/01 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
python中实现php的var_dump函数功能
2015/01/21 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
Python flask框架post接口调用示例
2019/07/03 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
python和go语言的区别是什么
2020/07/20 Python
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
安全保证书范文
2014/04/29 职场文书
酒店开业策划方案
2014/06/02 职场文书
优秀团支部申报材料
2014/12/26 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
撤诉申请怎么写
2015/05/19 职场文书
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技