图像滤波
含义
为什么要进行图像滤波?
去噪,比如椒盐噪声。
方法
噪声是怎么产生的
链接
椒盐噪声
-
定义:一种随机出现的黑白像素点噪声,像撒在图像上的“胡椒粒”(黑点)和“盐粒”(白点)。
-
成因:传感器故障、传输错误或图像采集时的瞬时干扰。
-
特点:
-
胡椒噪声(Pepper):像素值=0(纯黑)。
-
盐噪声(Salt):像素值=255(纯白,针对8-bit图像)。
-
线性滤波
概念
利用窗口对图像中的像素进行加权求和的滤波方式。
图像来源于小虎教程。
这里的输出指的是中心像素的计算结果。
图像的滤波是二维滤波的过程。
滤波器窗口:
滤波器窗口(也称为卷积核或模板)是一个小的矩阵(通常为奇数尺寸,如3×3、5×5),用于在图像上滑动并对局部像素进行加权计算。它是图像滤波操作的核心工具。
卷积:
卷积的数学意义:
链接
理解
为什么叫“卷”积
离散卷积:
-- 反转平移,相乘相加就是离散卷积。
互相关:
链接
离散互相关就是两个函数对应点的值相乘,再把所有对应点相加,就是互相关的结果。
-- 相乘相加就是互相关。
线程滤波本质上是运用了离散卷积,但更准确地说,它是一种特殊的线性滤波,使用的是非翻转的卷积核(即实际是互相关操作,但在图像处理中常被泛称为“卷积”)。
图像卷积运算的本质是通过一个“滑动窗口”(称为卷积核或滤波器)对图像进行局部加权求和。
注意单个像素的计算过程就是一次(离散)卷积。
卷积尺寸:
就是窗口维度,如[3*3],[5*4]等。
卷积系数:
就是窗口中的数据的设置,根据需要设置,不同的设置造就不同的滤波算法。
一般通过调整卷积核的尺寸和系数改变滤波效果。
卷积是需要考虑的两个情况:
1,边界处理;
2,拷贝原始数据,后续卷积不能使用替换的新数据,需要使用原始数据。
加权计算:
(1) 权重(Weight)
-
定义:权重是一个系数,表示某个数据在计算中的相对重要性。
-
特点:
-
权重越大,对结果的影响越大。
-
权重可以是正数、负数,甚至零(表示完全忽略该数据)。
-
加权计算在图像处理中的应用:
归一化:
线性滤波为了保证滤波后图像的亮度不变,卷积核的所有权重之和必须等于1。
所以均值滤波h=1/(w*h)[都是1],归一化系数为A=1/(w*h),本质上是A=1/sum,sum为所有权重之和,而且所有权重都为1;
高斯滤波高斯核归一化系数A=1/sum,sum为所有权重之和。
均值滤波
实现原理
利用权重相同的滤波器对所有像素进行加权求和替换中心像素。
均值滤波的窗口:
所谓均值,就是滤波器窗口中的权重(卷积系数)相同。
案例:
步骤:
1,边界处理:填充0会导致边缘像素值偏小(实际应用可选其他填充方式,如镜像填充)。
2,滑动窗口:从图像左上角开始,逐像素移动窗口(如3×3窗口每次右移1像素)。
3,局部计算:对每个窗口内的像素求算术平均值。
4,替换中心值:将结果赋给中心像素。
优缺点
给图像去噪的同时也破坏了图像的细节信息,使图像变得模糊不清。
opencv接口
高斯滤波
链接
高斯函数规律(高斯分布):
高斯分布(又称正态分布)是概率论中最核心的连续概率分布之一,其概率密度函数(PDF)呈“钟形曲线”,由均值(μ)和标准差(σ)决定形状。
链接
实现原理
高斯滤波和均值滤波原理都一样,只是窗口中的系数规律不一样而已。
高斯分布的窗口(高斯核):
A:
高斯滤波高斯核归一化系数A=1/(sum),sum为所有权重之和。
exp(...):
根据一组二维的(x,y)求得一个窗口的系数值,求出所有的系数之后,得到滤波器窗口,在进行线性滤波的卷积即可完成滤波。
高斯核求取案例:
优缺点
滤波效果比均值滤波好,但是计算复杂。
opencv接口
非线性滤波
线性和非线性:
链接
线性滤波和非线性滤波
计算方式的区别:
-
线性滤波:计算方式是 “加权求和”(比如取平均值)。
-
非线性滤波:计算方式是 “非加减乘除的操作”(比如排序取中间值)。
中值滤波
实现原理
对图像在窗口内的像素进行排序,取排序后的中间像素作为输出,也就是作为窗口中心像素的像素值。
-- 排序法。
案例:
优缺点
中值滤波会改变未受噪声污染的像素的灰度值,使图像变得模糊。随着滤波窗口尺寸的增加和噪声污染的加重,中值滤波效果明显变坏。
opencv接口
双边滤波
实现原理
高斯函数的取值只与空间位置有关,,双边滤波中窗口的加权系数同时与空间位置、像素值相似度有关。
双边滤波结合了两种权重:
-
空间权重:基于像素间的空间距离,距离越近权重越大。
-
强度权重:基于像素值的相似程度,值越相似权重越大。
也就是双边滤波中使用了高斯分布,两种权重的计算方式都使用高斯分布公式。
案例:
优缺点
能保留细节信息的同时去除噪声。
opencv接口
形态学滤波
OpenCV中最基本的形态学操作是膨胀(dilate)和腐蚀(erode)。
实现原理
膨胀就是求局部最大;腐蚀就是求局部最小值。
优缺点
声明:本文内容讲解仅限个人理解,可能会存在误区。