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 20 Python
Python脚本实现DNSPod DNS动态解析域名
Feb 14 Python
在Python 3中实现类型检查器的简单方法
Jul 03 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
Jul 13 Python
Python回文字符串及回文数字判定功能示例
Mar 20 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
Jun 11 Python
在python中pandas的series合并方法
Nov 12 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
python实现从wind导入数据
Dec 03 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 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中的float类型使用说明
2010/07/27 PHP
CI框架自动加载session出现报错的解决办法
2014/06/17 PHP
Yii调试SQL的常用方法
2014/07/09 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
js实现动态时钟
2020/03/12 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
python抽象基类用法实例分析
2015/06/04 Python
Python 操作MySQL详解及实例
2017/04/30 Python
在python中pandas的series合并方法
2018/11/12 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
解释i节点在文件系统中的作用
2013/11/26 面试题
会计专业毕业生自我鉴定
2013/10/29 职场文书
物理教育专业毕业生推荐信
2013/11/03 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
教师节领导致辞
2015/07/29 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
Java基础之this关键字的使用
2021/06/30 Java/Android