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中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
Python自动扫雷实现方法
Jul 25 Python
Python实现生成随机数据插入mysql数据库的方法
Dec 25 Python
Python enumerate索引迭代代码解析
Jan 19 Python
在python中以相同顺序shuffle两个list的方法
Dec 13 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
May 25 Python
浅析Python面向对象编程
Jul 10 Python
python如何获得list或numpy数组中最大元素对应的索引
Nov 16 Python
python3代码输出嵌套式对象实例详解
Dec 03 Python
Python Django获取URL中的数据详解
Nov 01 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入门学习知识点三 PHP上传
2011/07/14 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
解决PHP里大量数据循环时内存耗尽的方法
2015/10/10 PHP
Prototype 工具函数 学习
2009/07/23 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
浅谈$(document)和$(window)的区别
2015/07/15 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
微信小程序一周时间表功能实现
2019/10/17 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
Pyqt5实现英文学习词典
2019/06/24 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
2020/04/01 Python
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
淘宝客服自我总结鉴定
2014/01/25 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
银行授权委托书范本
2014/10/04 职场文书
迁户口计划生育证明
2014/10/19 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL
Java8中Stream的一些神操作
2021/11/02 Java/Android
python神经网络Xception模型
2022/05/06 Python