python手写均值滤波

作者:丹啊丹 时间:2022-03-16 20:53:19 

本文实例为大家分享了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手写均值滤波

来源:https://blog.csdn.net/qq_43631789/article/details/104379193

标签:python,均值滤波
0
投稿

猜你喜欢

  • 不同操作系统下的mysql数据库同步

    2008-12-22 14:41:00
  • Go语言中的闭包详解

    2023-06-30 05:27:14
  • sql server对字段的添加修改删除、以及字段的说明

    2012-01-05 18:50:52
  • 解决mysql创建数据库后出现:Access denied for user 'root'@'%' to database 'xxx'的问题

    2024-01-21 22:51:52
  • 我要如何了解用户的需求

    2007-08-26 17:19:00
  • Python基础之教你怎么在M1系统上使用pandas

    2023-09-02 12:56:23
  • 快速掌握怎样选择准备安装的 MySQL版本

    2008-12-17 16:42:00
  • PHP获取类中常量,属性,及方法列表的方法

    2023-11-19 19:57:58
  • sqlserver数据库主键的生成方式小结(sqlserver,mysql)

    2012-08-21 10:25:45
  • python jieba分词并统计词频后输出结果到Excel和txt文档方法

    2023-10-28 21:16:37
  • 用VBS语言实现的网页计算器源代码

    2007-12-26 17:09:00
  • python中遍历文件的3个方法

    2022-10-21 08:41:07
  • Python可视化库之HoloViews的使用教程

    2023-11-05 17:09:03
  • PHP图片上传代码

    2024-05-05 09:17:26
  • Sql Server 开窗函数Over()的使用实例详解

    2024-01-17 14:34:33
  • SQL Server正确删除Windows认证用户的方法

    2024-01-25 23:06:15
  • SqlServer参数化查询之where in和like实现之xml和DataTable传参介绍

    2012-05-22 18:38:49
  • 关于javascript中伪数组和真数组的一些小秘密

    2023-07-02 03:47:47
  • Python 使用 attrs 和 cattrs 实现面向对象编程的实践

    2022-05-29 22:38:00
  • Python爬虫抓取技术的一些经验

    2021-06-09 12:02:23
  • asp之家 网络编程 m.aspxhome.com