图像增强之各种算子
图像增强:目的,改善图像的视觉效果或转变成更利于分析的形式。
一.空域增强
- 对比度增强:如直方图均衡化等
- 图像平滑:使边缘等变的模糊
- 中值滤波
- 高斯滤波等
- 图像锐化:使边缘变得突出,最常用的是梯度法。
- 一阶的有Prewwit算子,sobel算子,canny算子等;
- 二阶的有laplace算子,laplace of Gauss算子(LOG)
二.频域增强
- 低通滤波及高通滤波
图像处理API的C++实现:
https://blog.csdn.net/weixin_40647819/category_7676770.html
https://blog.csdn.net/weixin_40647819/category_9285465.html
opencv API的介绍及调用
https://blog.csdn.net/weixin_40647819/category_7592760.html
详细介绍:
1.高斯平滑
0)高斯滤波函数
对于图像来说,高斯滤波器是利用高斯核的一个2维的卷积算子,用于图像模糊化(去除细节和噪声)。
1) 高斯分布
一维高斯分布:
二维高斯分布:
2) 高斯核(需要归一化)
理论上,高斯分布在所有定义域上都有非负值,这就需要一个无限大的卷积核。实际上,仅需要取均值周围3倍标准差内的值,以外部份直接去掉即可。 如下图为一个标准差为1.0的整数值高斯核。
3) 高斯滤波性质
高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用.高斯函数具有五个十分重要的性质,它们是:
(1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的.一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑.旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向.
(2)高斯函数是单值函数.这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的.这一性质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像素点仍然有很大作用,则平滑运算会使图像失真.
(3)高斯函数的傅立叶变换频谱是单瓣的.正如下面所示,这一性质是高斯函数付立叶变换等于高斯函数本身这一事实的直接推论.图像常被不希望的高频信号所污染(噪声和细纹理).而所希望的图像特征(如边缘),既含有低频分量,又含有高频分量.高斯函数付立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需信号.
(4)高斯滤波器宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的.σ越大,高斯滤波器的频带就越宽,平滑程度就越好.通过调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷.
(5)由于高斯函数的可分离性,较大尺寸的高斯滤波器可以得以有效地实现.二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长.https://blog.csdn.net/qq_36359022/article/details/80188873
4 )高斯滤波应用
高斯滤波后图像被平滑的程度取决于标准差。它的输出是领域像素的加权平均,同时离中心越近的像素权重越高。因此,相对于均值滤波(mean filter)它的平滑效果更柔和,而且边缘保留的也更好。
高斯滤波被用作为平滑滤波器的本质原因是因为它是一个低通滤波器,见下图。而且,大部份基于卷积平滑滤波器都是低通滤波器。
图.高斯滤波器(标准差=3像素)的频率响应。The spatial frequency axis is marked
in cycles per pixel, and hence no value above 0.5 has a real meaning。
5 )高斯滤波步骤
(1)移动相关核的中心元素,使它位于输入图像待处理像素的正上方
(2)将输入图像的像素值作为权重,乘以相关核
(3)将上面各步得到的结果相加做为输出
图像梯度:一般用差分法求梯度(经常用梯度的近似作为梯度,减少计算量)
2.Prewwit 算子
3.sobel 算子
带权的Prewwit,和Prewwit区别,认为邻域距离对像素权重产生影响,将核上4邻域的权重变为8邻域权重的两倍。
4.canny 算子
https://blog.csdn.net/weixin_40647819/article/details/91411424
https://blog.csdn.net/fengye2two/article/details/79190759
5.laplace算子
6.LOG算子
https://blog.csdn.net/zhangxueyang1/article/details/54232127