欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > OpenCV:图像处理中的低通滤波

OpenCV:图像处理中的低通滤波

2025/3/15 0:54:20 来源:https://blog.csdn.net/u011186532/article/details/145182738  浏览:    关键词:OpenCV:图像处理中的低通滤波

目录

简述

什么是低通滤波?

各种滤波器简介与实现

方盒滤波

均值滤波

中值滤波

高斯滤波

双边滤波

各种滤波的对比与应用场景


相关阅读

OpenCV基础:图像变换-CSDN博客

OpenCV:图像滤波、卷积与卷积核-CSDN博客


简述

低通滤波是一种在图像处理中广泛使用的技术,主要用于去噪和平滑处理。本文将从基础概念出发,结合 方盒滤波、均值滤波、中值滤波、高斯滤波 和 双边滤波 的具体实现与应用场景,进行详细讲解。


什么是低通滤波?

低通滤波是一种通过滤掉图像中的高频成分(如噪声和细节),保留低频成分(如平滑区域)的操作。

作用

  • 去除图像中的高频噪声。
  • 平滑图像,减少细节。

应用场景

  • 图像预处理(如降噪)。
  • 对比度减弱(用于模糊效果)。
  • 提高检测精度(用于后续图像分析)。

各种滤波器简介与实现

方盒滤波

方盒滤波是一种简单的低通滤波器,它将图像的局部像素取均值,用一个固定大小的矩形窗口滑动图像。

代码实现

import cv2# 读取图像
image = cv2.imread("image.jpg")# 方盒滤波
box_filtered = cv2.boxFilter(image, -1, (5, 5))cv2.imshow("Original", image)
cv2.imshow("Box Filter", box_filtered)
cv2.waitKey(0)
cv2.destroyAllWindows()

特点:简单快速,但可能引入边缘模糊。

运行效果:


均值滤波

均值滤波与方盒滤波类似,只不过它专门用于对邻域像素取均值,进行平滑处理。

代码实现

import cv2
import numpy as np# 读取图像
image = cv2.imread("D:\\resource\\filter\\lena.png")# 均值滤波
result = cv2.blur(image, (5, 5))cv2.imshow("Original", image)
cv2.imshow("Result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

 特点:效果较为简单,但容易丢失图像细节。

运行效果:


中值滤波

中值滤波是一种非线性滤波方法,用局部窗口内的中值替代中心像素值,常用于去除椒盐噪声。

代码实现

import cv2
import numpy as np# 读取图像
image = cv2.imread("D:\\resource\\huaji1.jpg")# 中值滤波, 对胡椒噪点效果好
result = cv2.medianBlur(image, 5)cv2.imshow("image", image)
cv2.imshow("result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

特点

  • 对椒盐噪声的去除效果特别好。
  • 不会显著模糊边缘。

运行效果:


高斯滤波

高斯滤波使用高斯函数作为权重,对邻域像素加权求和,权重与像素距离呈指数关系,距离越远权重越小。

代码实现

import cv2
import numpy as np# 读取图像
image = cv2.imread("D:\\resource\\filter\\lena.png")# 高斯滤波, 针对高斯噪点的效果好
result = cv2.GaussianBlur(image, (5,5), sigmaX=1)cv2.imshow("image", image)
cv2.imshow("result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

特点

  • 平滑效果更自然,常用于降噪。
  • 能够保持一定的图像边缘信息。

运行效果:


双边滤波

双边滤波是结合了高斯滤波和平滑滤波的优点,同时考虑像素的空间距离和色彩距离,既能平滑图像又能保留边缘。

代码实现

import cv2
import numpy as np# 读取图像
image = cv2.imread("D:\\resource\\filter\\lena.png")# 双边滤波
result = cv2.bilateralFilter(image, 7, 20, 50)cv2.imshow("image", image)
cv2.imshow("result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

特点

  • 边缘保留效果显著。
  • 常用于美容滤镜或去噪后保留图像细节。

 运行效果:

经过双边滤波后,图像中的皮肤部分更平滑了。 


各种滤波的对比与应用场景

滤波类型特点应用场景
方盒滤波简单高效,但模糊边缘明显快速平滑处理
均值滤波类似方盒,但更平滑自然去除轻微噪声
中值滤波去噪能力强,保护边缘去除椒盐噪声
高斯滤波平滑效果自然,速度快图像降噪,边缘检测的预处理
双边滤波平滑与边缘保留并存美颜滤镜,降噪后细节保留

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词