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查看多台服务器进程的脚本分享
Jun 11 Python
Python的Django框架使用入门指引
Apr 15 Python
用实例解释Python中的继承和多态的概念
Apr 27 Python
Django中处理出错页面的方法
Jul 15 Python
Python 读写文件的操作代码
Sep 20 Python
python3 面向对象__类的内置属性与方法的实例代码
Nov 09 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
python实点云分割k-means(sklearn)详解
May 28 Python
基于python代码批量处理图片resize
Jun 04 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
Aug 04 Python
Python+tkinter实现高清图片保存
Mar 13 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 中使用随机数的三个步骤
2006/10/09 PHP
php处理json时中文问题的解决方法
2011/04/12 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
基于jquery的滚动新闻列表
2010/06/19 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
vue ssr 指南详读
2018/06/29 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
python利用Guetzli批量压缩图片
2017/03/23 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
实例分析python3实现并发访问水平切分表
2018/09/29 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
小学生成长感言
2014/01/30 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
Python数据结构之队列详解
2022/03/21 Python