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使用pil生成缩略图的方法
Mar 26 Python
python算法表示概念扫盲教程
Apr 13 Python
Python socket实现简单聊天室
Apr 01 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
python flask搭建web应用教程
Nov 19 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
python topk()函数求最大和最小值实例
Apr 02 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 Python
python删除文件、清空目录的实现方法
Sep 23 Python
python3实现Dijkstra算法最短路径的实现
May 12 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中全局变量global的使用演示代码
2011/05/18 PHP
header跳转和include包含问题详解
2012/09/08 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
PHP CURL post数据报错 failed creating formpost data
2016/10/16 PHP
PHP实现简易blog的制作
2016/10/24 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
python实现一次创建多级目录的方法
2015/05/15 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
Django--权限Permissions的例子
2019/08/28 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
消防先进事迹材料
2014/02/10 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
实习单位推荐信
2015/03/27 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
法制教育观后感
2015/06/17 职场文书
运动会广播稿300字
2015/08/19 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
导游词之南京中山陵
2019/11/27 职场文书
python实现剪贴板的操作
2021/07/01 Python