Opencv 学习笔记:一文掌握四种经典图像滤波(均值 / 高斯 / 中值 / 双边)

图像滤波是图像去噪、平滑处理的核心操作,OpenCV 内置了多种高效滤波 API。本文通过极简代码,一次性演示均值、高斯、中值、双边四种常用滤波的实现方法,新手可直接复用。

核心代码实现

python 复制代码
import cv2 as cv
import numpy as np

# 读取原始图像
src = cv.imread(".\image\5.bmp")
if src is None:
    print('could not load image')
    exit()

# 1. 均值滤波:核大小(5,5)(需为奇数)
img_mean = cv.blur(src, (5, 5))
# 2. 高斯滤波:核大小(5,5),标准差设0(自动计算)
img_guassion = cv.GaussianBlur(src, (5, 5), 0)
# 3. 中值滤波:核大小5(仅需单数值,需为奇数)
img_median = cv.medianBlur(src, 5)
# 4. 双边滤波:核大小9,颜色标准差75,空间标准差75
img_bilater = cv.bilateralFilter(src, 9, 75, 75)

# 显示四种滤波结果
cv.imshow("img_mean", img_mean)
cv.imshow("img_gussion", img_guassion)
cv.imshow("img_median", img_median)
cv.imshow("img_bilater", img_bilater)

cv.waitKey(0)
cv.destroyAllWindows()

关键知识点解析

滤波类型 核心 API 关键参数说明 特点与适用场景
均值滤波 cv.blur (图像,核大小),核需为奇数 简单平滑,去噪但易模糊边缘,适用于轻微噪声
高斯滤波 cv.GaussianBlur (图像,核大小,标准差),标准差 0 自动算 加权平滑,去噪同时保留更多边缘
中值滤波 cv.medianBlur (图像,核大小),核需为奇数 对椒盐噪声(白点 / 黑点)效果最佳
双边滤波 cv.bilateralFilter (图像,核大小,颜色 σ, 空间 σ) 保边去噪,保留边缘细节,计算稍慢

重要注意事项

  1. 所有滤波的核大小需为奇数(如 3、5、9),否则会触发报错;
  2. 高斯滤波标准差设 0 时,OpenCV 会根据核大小自动计算最优值;
  3. 双边滤波的颜色σ越大,允许更多颜色差异的像素参与滤波;空间σ越大,滤波范围越广。

总结

  1. 基础去噪选均值 / 高斯滤波,高斯滤波边缘保留效果更优;
  2. 处理椒盐噪声优先使用中值滤波;
  3. 人像、纹理图等需保边的精细去噪场景,选择双边滤波。
相关推荐
xiaotao1313 小时前
02-机器学习基础: 监督学习——线性回归
学习·机器学习·线性回归
墨黎芜4 小时前
ArcGIS从入门到精通——地图符号、注记的初步使用
学习·arcgis·信息可视化
小李云雾4 小时前
FastAPI重要知识点---中间件(Middleware)
学习·程序人生·中间件·fastapi·middleware
.Cnn4 小时前
JavaScript 前端基础笔记(网页交互核心)
前端·javascript·笔记·交互
小夏子_riotous4 小时前
Docker学习路径——3、常用命令
linux·运维·服务器·学习·docker·容器·centos
STLearner5 小时前
WSDM 2026 | 时间序列(Time Series)论文总结【预测,表示学习,因果】
大数据·论文阅读·人工智能·深度学习·学习·机器学习·数据挖掘
redaijufeng5 小时前
网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。
爬虫·学习·selenium
九成宫5 小时前
IT项目管理期末复习——Chapter 10 项目沟通管理
笔记·项目管理·软件工程
腾科IT教育5 小时前
零基础快速上岸HCIP,高效学习思路分享
学习·华为认证·hcip·hcip考试·hcip认证
23471021275 小时前
4.14 学习笔记
笔记·python·学习