计算机视觉全系列实战教程:(九)图像滤波操作

1.图像滤波的概述

(1)Why (为什么要进行图像滤波)

  • 去噪:去除图像在获取、传输等过程中的各种噪音干扰
  • 提取特征:使用特定的图像滤波器提取图像特定特征

(2)What (什么是图像滤波)

使用滤波核对图像进行卷积运算或非线性运算,以达到去噪或提取特征的目的的图像处理技术

2.线性滤波

What:对各像素灰度进行简单处理(乘以一个权重),最后求和

(1)方框滤波

归一化方框滤波器和均值滤波器的核基本一致,主要区别是:是否进行归一化处理,如果不进行归一化处理 ,则表示的是方框滤波

在opencv中的滤波算法如下:

cpp 复制代码
void cv::boxFilter(cv::Mat &imSrc, //输入图像
			  cv::Mat &imDst, //输出图像
			  int depth, //图像深度
			  cv::Size ssize, //方框滤波器的尺寸
			  cv::Point(-1,-1), //默认以中心点为基准
			  bool normalize = true, //是否进行归一化处理
			  int borderType = 4
			  );

(2)均值滤波

均值滤波器的核的元素全是1,并进行了归一化 操作:即每个元素都会除以核的总数

cpp 复制代码
void cv::blur(cv::Mat &imSrc, //输入图像
			  cv::Mat &imDst,  //输出图像
			  cv::Size ksize,  //滤波核的尺寸
			  Point anchor=Point(-1,-1),  //默认以中心点为基准
			  int borderType=BORDER_DEFA  //图像外部像素的边界模式,一般默认值即可
			  );

(3)高斯滤波

形状类似于概率论中的高斯分布模型(正态分布模型)

cpp 复制代码
void cv::GaussianBlur(
	cv::Mat &imSrc, //输入图像
	cv::Mat &imDst, //输出图像
	cv::Size ksize, //高斯滤波核的尺寸
	double sigmaX, //高斯核函数在X方向的标准偏差
	double sigmaY = 0, //高斯核函数在Y方向的标准偏差
	int borderType = BORDER_DEFAULT
	);

3.非线性滤波

(1)中值滤波

用像素点领域的灰度值来代替该像素点的灰度值,可以去除最大值和最小值,针对椒盐噪声效果很好

cpp 复制代码
void cv::medianBlur(
	cv::Mat &imSrc, //输入图像
	cv::Mat &imDst, //输出图像
	int ksize  //中值滤波核的尺寸
	);

(2)双边滤波

双边滤波能够在保持边缘的前提下实现降噪的目的,缺点是效率较慢
基本原理:考虑两个权重因素来组成卷积核

  • 空域权重:两点之间的距离,距离越远权重越低
  • 值域权重:两点之间的像素值相似程度,越相似权重越大。
cpp 复制代码
void cv::bilalteralFilter(
	cv::Mat &imSrc, //输入图像
	cv::Mat &imDst,  //输出图像
	double sigmaColor, //值域的标准差
	double sigmaSpace,  //空间域的标准差
	int borderType = BORDER_DEFAULT
	);
相关推荐
在所不辞兄7 分钟前
【零基础学智能仿真-07】随机森林——用多棵树获得更稳定的力学预测
人工智能·深度学习·神经网络·机器学习·工程技术
Tom·Ge1 小时前
【AI前沿】2026.08.17 SpaceX 600亿收购Cursor正式完成·DeepSeek V4 Pro万亿开源·人形机器人生态全面爆发
人工智能·大模型·ai前沿
郑州光合科技余经理2 小时前
本地生活服务系统:成品模块和定制接口怎么划界
java·前端·人工智能·后端·系统架构·php·ai编程
2603_965148112 小时前
家居百货蓝海:API挖掘高复购率生活小商品
大数据·服务器·人工智能·python·生活
2501_930472442 小时前
踩坑|CodeBuddy权限配置:AI误删文件、乱跑命令、.env泄露怎么防
人工智能·ai编程
小淮AI5 小时前
从“刷题”到“追问”:AI课堂正在重塑哪些学习旧习惯?
人工智能·学习
cui_ruicheng6 小时前
LangChain 应用开发(十四):Agent 上下文与记忆机制
服务器·人工智能·python·langchain
飞哥数智坊6 小时前
直播半小时,我聊了聊 Agent 最常见的 3 个疑问
人工智能
ggb喔6 小时前
AI 原生攻防时代:2026 年渗透测试与逆向开发的范式重构
人工智能·重构
宸津-代码粉碎机7 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring