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之眼花缭乱的运算符
Sep 14 Python
python实现的文件同步服务器实例
Jun 02 Python
Python中的一些陷阱与技巧小结
Jul 10 Python
Python 迭代器与生成器实例详解
May 18 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
Jan 08 Python
Python 生成 -1~1 之间的随机数矩阵方法
Aug 04 Python
Python实现合并两个有序链表的方法示例
Jan 31 Python
Django基础三之视图函数的使用方法
Jul 18 Python
解决Python3下map函数的显示问题
Dec 04 Python
Python定义函数实现累计求和操作
May 03 Python
Python基础学习之奇异的GUI对话框
May 27 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 04 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 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
PHP对象Object的概念 介绍
2012/06/14 PHP
解析csv数据导入mysql的方法
2013/07/01 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
jQuery.each()用法分享
2012/07/31 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
Javascript实现打鼓效果
2021/01/29 Javascript
Python书单 不将就
2017/07/11 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python numpy库np.percentile用法说明
2020/06/08 Python
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
彪马日本官网:PUMA日本
2019/01/31 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
Ref与out有什么不同
2012/11/24 面试题
英文自荐信
2013/12/19 职场文书
化验室技术员岗位职责
2013/12/24 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
外贸英文求职信范文
2015/03/19 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
高中历史教学反思
2016/02/19 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS