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
投稿

猜你喜欢

  • python爬虫URL重试机制的实现方法(python2.7以及python3.5)

    2023-08-06 07:51:43
  • 设计高效的faq页面

    2011-06-10 13:13:00
  • python读文件逐行处理的示例代码分享

    2023-03-17 03:54:04
  • windows下python模拟鼠标点击和键盘输示例

    2021-11-12 21:06:32
  • 一空间多域名绑定不同目录方法

    2009-03-09 18:32:00
  • 亚马逊购物用户体验分析 (二)

    2009-10-25 12:48:00
  • Python实战之实现获取动态图表

    2023-10-31 14:03:34
  • python 定义类时,实现内部方法的互相调用

    2023-11-20 11:09:31
  • opencv python 图像轮廓/检测轮廓/绘制轮廓的方法

    2022-08-13 06:54:59
  • redis不能访问本机真实ip地址的解决方案

    2023-07-05 13:09:44
  • Python基于百度API识别并提取图片中文字

    2023-02-06 13:51:25
  • python argparse 模块命令行参数用法及说明

    2023-10-26 00:08:27
  • mysql数据表和数据表关联

    2010-12-03 16:00:00
  • Python 绘图库 Matplotlib 入门教程

    2021-07-21 00:22:07
  • PHP header()函数常用方法总结

    2023-09-06 16:51:50
  • Python模拟登录12306的方法

    2023-03-11 09:12:36
  • opencv3/python 鼠标响应操作详解

    2022-10-11 09:29:52
  • python实现音乐播放和下载小程序功能

    2023-07-03 17:59:03
  • 轻松实现php文件上传功能

    2023-11-17 04:34:12
  • 用WEB(ASP)方式实现SQL SERVER 数据库的备份和恢复

    2010-05-11 20:12:00
  • asp之家 网络编程 m.aspxhome.com