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

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
	);
相关推荐
牛客企业服务37 分钟前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
视觉语言导航1 小时前
RAL-2025 | 清华大学数字孪生驱动的机器人视觉导航!VR-Robo:面向视觉机器人导航与运动的现实-模拟-现实框架
人工智能·深度学习·机器人·具身智能
**梯度已爆炸**1 小时前
自然语言处理入门
人工智能·自然语言处理
ctrlworks2 小时前
楼宇自控核心功能:实时监控设备运行,快速诊断故障,赋能设备寿命延长
人工智能·ba系统厂商·楼宇自控系统厂家·ibms系统厂家·建筑管理系统厂家·能耗监测系统厂家
BFT白芙堂2 小时前
睿尔曼系列机器人——以创新驱动未来,重塑智能协作新生态(上)
人工智能·机器学习·机器人·协作机器人·复合机器人·睿尔曼机器人
aneasystone本尊2 小时前
使用 MCP 让 Claude Code 集成外部工具
人工智能
静心问道2 小时前
SEW:无监督预训练在语音识别中的性能-效率权衡
人工智能·语音识别
羊小猪~~3 小时前
【NLP入门系列五】中文文本分类案例
人工智能·深度学习·考研·机器学习·自然语言处理·分类·数据挖掘
xwz小王子3 小时前
从LLM到WM:大语言模型如何进化成具身世界模型?
人工智能·语言模型·自然语言处理
我爱一条柴ya3 小时前
【AI大模型】深入理解 Transformer 架构:自然语言处理的革命引擎
人工智能·ai·ai作画·ai编程·ai写作