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 set集合类型操作总结
Nov 07 Python
解析Python中的异常处理
Apr 28 Python
Python实现栈的方法
May 26 Python
使用python加密自己的密码
Aug 04 Python
浅析python继承与多重继承
Sep 13 Python
python使用Matplotlib画饼图
Sep 25 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 Python
Python中的 enum 模块源码详析
Jan 09 Python
对python实现合并两个排序链表的方法详解
Jan 23 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 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计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
php 可变函数使用小结
2018/06/12 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
浅谈微信小程序flex布局基础
2018/09/10 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
JavaScript实现切换多张图片
2021/01/27 Javascript
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
easy_install python包安装管理工具介绍
2013/02/10 Python
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
Python3基础之list列表实例解析
2014/08/13 Python
Python实现Linux命令xxd -i功能
2016/03/06 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
个人党性剖析材料
2014/02/03 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
2015年清明节活动总结
2015/02/09 职场文书
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS