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

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
	);
相关推荐
gogoMark1 小时前
口播视频怎么剪!利用AI提高口播视频剪辑效率并增强”网感”
人工智能·音视频
2201_754918411 小时前
OpenCV 特征检测全面解析与实战应用
人工智能·opencv·计算机视觉
love530love3 小时前
Windows避坑部署CosyVoice多语言大语言模型
人工智能·windows·python·语言模型·自然语言处理·pycharm
985小水博一枚呀3 小时前
【AI大模型学习路线】第二阶段之RAG基础与架构——第七章(【项目实战】基于RAG的PDF文档助手)技术方案与架构设计?
人工智能·学习·语言模型·架构·大模型
白熊1883 小时前
【图像生成大模型】Wan2.1:下一代开源大规模视频生成模型
人工智能·计算机视觉·开源·文生图·音视频
weixin_514548893 小时前
一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting
人工智能·计算机视觉·3d
四口鲸鱼爱吃盐4 小时前
BMVC2023 | 多样化高层特征以提升对抗迁移性
人工智能·深度学习·cnn·vit·对抗攻击·迁移攻击
Echo``4 小时前
3:OpenCV—视频播放
图像处理·人工智能·opencv·算法·机器学习·视觉检测·音视频
Douglassssssss4 小时前
【深度学习】使用块的网络(VGG)
网络·人工智能·深度学习
okok__TXF4 小时前
SpringBoot3+AI
java·人工智能·spring