python手写均值滤波

 更新时间:2020年02月19日 10:53:19   作者:丹啊丹  
这篇文章主要为大家详细介绍了python手写均值滤波的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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中数据库like模糊查询方式

    python中数据库like模糊查询方式

    这篇文章主要介绍了python中数据库like模糊查询方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 深入详解Python中生成器的原理与应用

    深入详解Python中生成器的原理与应用

    生成器 是Python中一种非常实用的特性,它能帮助我们编写高效的代码,本文将详细为大家介绍生成器的原理、用法以及实际应用场景,有需要的小伙伴可以了解下
    2023-12-12
  • Python实现的建造者模式示例

    Python实现的建造者模式示例

    这篇文章主要介绍了Python实现的建造者模式,结合完整实例形式分析了构造者模式的具体定义与相关使用操作技巧,需要的朋友可以参考下
    2018-08-08
  • Python3实现的简单三级菜单功能示例

    Python3实现的简单三级菜单功能示例

    这篇文章主要介绍了Python3实现的简单三级菜单功能,涉及Python用户交互以及针对json格式数据的遍历、读取、判断等相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • python中list*n生成多维数组与for循环生成多维数组的区别说明

    python中list*n生成多维数组与for循环生成多维数组的区别说明

    这篇文章主要介绍了python中list*n生成多维数组与for循环生成多维数组的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python实现mysql的单引号字符串过滤方法

    python实现mysql的单引号字符串过滤方法

    这篇文章主要介绍了python实现mysql的单引号字符串过滤方法,以一个较为详细的实例形式分析了Python针对MySQL的操作及字符串过滤的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Python Opencv实现图片切割处理

    Python Opencv实现图片切割处理

    这篇文章主要为大家详细介绍了Python Opencv实现图片切割处理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Python之关于类变量的两种赋值区别详解

    Python之关于类变量的两种赋值区别详解

    这篇文章主要介绍了Python之关于类变量的两种赋值区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 如何在Python中实现goto语句的方法

    如何在Python中实现goto语句的方法

    这篇文章主要介绍了如何在Python中实现goto语句的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • python使用技巧-查找文件 

    python使用技巧-查找文件 

    这篇文章主要分享的是python使用技巧查找文件,下面我们就来介绍针对python查找文件的相关内容,需要的小伙伴可以参考一下
    2022-02-02

最新评论