当前位置: 首页 > article >正文

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()

特点

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

 运行效果:

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


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

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

http://www.kler.cn/a/518705.html

相关文章:

  • 八股文 (一)
  • 破解浏览器渲染“死锁”:CSS与JS如何影响页面加载速度?
  • 使用python-docx包进行多文件word文字、字符批量替换
  • php代码审计2 piwigo CMS in_array()函数漏洞
  • 微信小程序date picker的一些说明
  • FlinkSql使用中rank/dense_rank函数报错空指针
  • 小哆啦解题记:寻找最后一个单词的“长度”
  • 数据结构与算法分析:专题内容——人工智能中的寻路6之NegMax(代码详解)
  • 链式存储结构
  • 详解生成对抗网络(GAN)模型
  • Oracle迁移DM数据库
  • Facebook 元宇宙与全球文化交流的新趋势
  • 1.CSS的三大特性
  • 【Address Overfitting】解决过拟合的三种方法
  • 刷题总结 回溯算法
  • python3+TensorFlow 2.x(二) 回归模型
  • 理解神经网络:Brain.js 背后的核心思想
  • TMC2224替换DRV8824
  • win32汇编环境,函数的编写与调用、传值或返回值等
  • PyQt4 的图片切割编辑器
  • RocketMQ优势剖析-集成云原生环境
  • 【知识】可视化理解git中的cherry-pick、merge、rebase
  • Python爬虫基础总结笔记
  • wangEditor富文本编辑器,Laravel上传图片配置和使用
  • Kimi 1.5解读:国产AI大模型的创新突破与多模态推理能力(内含论文地址)
  • 在 Vue 项目中快速引入和使用 ECharts