前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >均值滤波

均值滤波

作者头像
裴来凡
发布于 2022-05-28 08:11:24
发布于 2022-05-28 08:11:24
64700
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import cv2
o=cv2.imread("C:/Users/xpp/Desktop/Lena.png")#原始图像
r3=cv2.blur(o,(3,3))#使用3x3卷积核的均值滤波
r5=cv2.blur(o,(5,5))#使用5x5卷积核的均值滤波
cv2.imshow("original",o)
cv2.imshow("result3",r3)
cv2.imshow("result5",r5)
cv2.waitKey()
cv2.destroyAllWindows()

算法:均值滤波是用当前像素点周围像素点的均值来代替当前像素值。该方法遍历处理图像内的每一个像素点,即可完成整幅图像的均值滤波。

  • 首先考虑需要对周围多少个像素点取均值
  • 对于边缘像素点,取图像内存在的周围邻域点的像素值均值或者扩展当前图像的周围像素点
  • 每一个像素点都与内部值1/(ksize)的矩阵相乘,得到均值滤波结果

dst=cv2.blur(src, ksize, anchor, borderType)

  • dst表示返回值,即均值滤波后得到的结果,可选参数
  • src表示输入图像,图像深度为CV_8U、CV_16U、CV_16S、CV_32F、CV_64F
  • ksize表示滤波核大小,即邻域图像的高度和宽度
  • anchor表示锚点,即均值均值滤波的均值的点位于核的中心点位置,可选参数
  • borderType表示边界样式,可选参数

例子:

当锚点位于图像中心

data=[(197+25+106+156+159)+(149+40+107+5+71)+(163+198+226+223+156)+(222+37+68+193+157)+(42+72+250+41+75)]/25=125.52≈126

当锚点位于图像左上角

方式1:不扩展边缘,3x3卷积核

data=[(23+158+140)+(238+0+67)+(199+197+25)]/9≈116.3≈116

方式2:扩展边缘,5x5卷积核

data=[(0+0+0+0+0)+(0+0+0+0+0)+(0+0+23+158+140)+(0+0+238+0+67)+(0+0+199+197+25)]/25=41.88≈42

注意:图像平滑伴随着图像模糊,卷积核越大,去噪效果越好,运算像素点越多,时间复杂度越大,图像失真越严重。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档