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 06 Python
Python简单读取json文件功能示例
Nov 30 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
Python3 读、写Excel文件的操作方法
Oct 20 Python
Python numpy.array()生成相同元素数组的示例
Nov 12 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
Python调用scp向服务器上传文件示例
Dec 22 Python
python字典setdefault方法和get方法使用实例
Dec 25 Python
Python 中@property的用法详解
Jan 15 Python
Python爬虫设置ip代理过程解析
Jul 20 Python
python用海龟绘图写贪吃蛇游戏
Jun 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滚动日志的代码实现
2015/06/10 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
英国著名的药妆网站:Escentual
2016/07/29 全球购物
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
美国旅游网站:Tours4Fun
2017/02/17 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
在职研究生自我鉴定
2013/10/16 职场文书
成人大专自我鉴定范文
2013/10/19 职场文书
物业管理应届生求职信
2013/10/28 职场文书
酒店个人求职信范文
2014/01/25 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
2014年社区植树节活动方案
2014/02/28 职场文书
幸福中国演讲稿
2014/09/12 职场文书
教师党员自我评价2015
2015/03/04 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis