opencv+python实现均值滤波

 更新时间:2020年02月19日 11:33:36   作者:油醋三椒  
这篇文章主要为大家详细介绍了opencv+python实现均值滤波,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了opencv+python实现均值滤波的具体代码,供大家参考,具体内容如下

原理

均值滤波其实就是对目标像素及周边像素取平均值后再填回目标像素来实现滤波目的的方法,当滤波核的大小是3×3 3\times 33×3时,则取其自身和周围8个像素值的均值来代替当前像素值。
均值滤波也可以看成滤波核的值均为 1 的滤波。
优点:算法简单,计算速度快;
缺点:降低噪声的同时使图像产生模糊,特别是景物的边缘和细节部分。

代码

import cv2 as cv
import numpy as np
import math
import copy

def spilt( a ):
 if a/2 == 0:
  x1 = x2 = a/2
 else:
  x1 = math.floor( a/2 )
  x2 = a - x1
 return -x1,x2

def original (i, j, k,a, b,img):
 x1, x2 = spilt(a)
 y1, y2 = spilt(b)
 temp = np.zeros(a * b)
 count = 0
 for m in range(x1, x2):
  for n in range(y1, y2):
   if i + m < 0 or i + m > img.shape[0] - 1 or j + n < 0 or j + n > img.shape[1] - 1:
    temp[count] = img[i, j, k]
   else:
    temp[count] = img[i + m, j + n, k]
   count += 1
 return temp

def average_function(a , b ,img):
 img0 = copy.copy(img)
 for i in range (0 , img.shape[0] ):
  for j in range (2 ,img.shape[1] ):
   for k in range (img.shape[2]):
    temp = original(i, j, k, a, b, img0)
    img[i,j,k] = int ( np.mean(temp))
 return img 
 
def main():
 img0 = cv.imread(r"noise.jpg")

 ave_img = average_function( 3 , 3, copy.copy(img0) ) #(3,3)滤波器大小 

 cv.imshow("ave_img",ave_img) 
 cv.imshow("original",img0)

 cv.waitKey(0)
 cv.destroyAllWindows()

if __name__ == "__main__":
 main()

样例

原图:

滤波核为3×3 3\times 33×3的均值滤波后:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python游戏地图最短路径求解

    python游戏地图最短路径求解

    这篇文章主要为大家详细介绍了python游戏地图最短路径的求解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Python实现前端样式尺寸单位转换

    Python实现前端样式尺寸单位转换

    在 Web 前端项目开发时,样式尺寸都是以 rpx 为单位,可是 UI 设计师在看完开发后的 UI ,却要求都以 px 为单位,所以本文就和大家分享一个利用Python就能实现尺寸单位转换的方法吧
    2023-06-06
  • TensorFlow如何实现反向传播

    TensorFlow如何实现反向传播

    这篇文章主要为大家详细介绍了TensorFlow如何实现反向传播,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • python实现图片数据增强的示例详解

    python实现图片数据增强的示例详解

    这篇文章主要为大家详细介绍了python实现图片数据增强的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-10-10
  • python单元测试框架unittest基本用法案例

    python单元测试框架unittest基本用法案例

    unittest库unittest库是python的内置库,用来对程序进行测试,下面这篇文章主要给大家介绍了关于python中单元测试框架unittest基本用法的相关资料,需要的朋友可以参考下
    2022-09-09
  • 一文教会你用Python3获取网页源代码

    一文教会你用Python3获取网页源代码

    学了python后,之前一些我们常用的方法,也可以换一种思路用python中的知识来解决,下面这篇文章主要给大家介绍了关于如何使用Python3获取网页源代码的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • python树的同构学习笔记

    python树的同构学习笔记

    在本篇文章里小编给大家整理的是一篇关于python树的同构学习笔记以及相关实例代码内容,有需要的朋友们学习下。
    2019-09-09
  • 21行Python代码实现拼写检查器

    21行Python代码实现拼写检查器

    21行python代码实现的一个简易但是具备完整功能的拼写检查器,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • python并发编程多进程之守护进程原理解析

    python并发编程多进程之守护进程原理解析

    这篇文章主要介绍了python并发编程多进程之守护进程原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • matplotlib之属性组合包(cycler)的使用

    matplotlib之属性组合包(cycler)的使用

    这篇文章主要介绍了matplotlib之属性组合包(cycler)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论