【图像处理】空间域上的图像增强(sobel,LOG,DOG算子等)

空间域与傅里叶变化后的频域相对,是在实际的图像坐标空间中进行变换。在傅里叶变换中有f(x,y)<->F(u,v),前者位于空间域,后者位于频域。

一、全局图像增强,比如灰度变换和直方图调整。

二、局部增强,对特定区域进行调整。

三、分块增强,将图像分块,计算每一个块的特征,比如平均值、方差等,根据这些特征,判断当前块是否调整。这里可以用到机器学习的方法。

四、算术/逻辑增强,设有图像f(x,y)和g(x,y),算子op,用户设定参数a和b,那么得到新的增强图像h(x,y)=af(x,y)op bg(x,y)。如果f1(x,y), f2(x,y)…fn(x,y)是不同时间、相同噪声(尤其是白噪声)下生成的图像,那么h(x,y)= [f1(x,y)+…fn(x,y)]/n,h(x,y)有效消除了一部分噪声。

五、平滑空间滤波。使用NxN的平滑模板(滤波器)对图像进行卷积,可以减小噪声,产生模糊效果。平滑空间滤波器分为(1)平滑线性滤波器,比如均值滤波和高斯滤波(2)统计排序滤波器,比如中值滤波、最大最小值滤波、中点滤波,中点滤波是将最大值和最小值的平均赋给当前像素。

六、锐化空间滤波。与平滑空间滤波相对,锐化空间滤波增强被模糊的细节,边缘和突变细节。

 

锐化空间滤波基于微分数学原理。在离散系统中,一阶导定义为f’(x)=f(x+1)-f(x),二阶导数定义为f’’(x) = f’(x+1)-f’(x) = f(x+2) – f(x+1) – (f(x+1) –f(x))=f(x+2)+f(x)-2f(x+1),不过一般我们看到是f’’(x)= f(x+1)+f(x-1)-2f(x)。二阶微分一般比一阶微分好,将灰度变化最剧烈的地方有更强的响应。

一阶微分:

-1 0 1                                    -1-1 -1

-1 0 1                                    00 0

-1 0 1                                    11 1

Perwitt算子

-1 0 1                                    -1-2 -1

-2 0 2                                    00 0

-1 0 1                                    12 1

sobel算子,与perwitt算子的区别是强调了中心部分,弱化对角线

 

二阶微分:

0 1 0                                               11 1

1 -4 1                                            1 8 1

0 1 0                                               11 1

Laplacian算子

 0 0 1 0 0

0 1 2 1 0

1 2 -16 2 1

0 1 2 1 0

0 0 1 0 0

一个LoG算子,高斯拉普拉斯算子。

 

LoG图像

高斯拉普拉斯滤波的原始思路是:先对原始图像进行高斯滤波,然后用laplacian算子进行卷积。这样有效抑制了噪声,锐化效果又没有太大损失。我们把高斯滤波和laplacian算子结合起来,对高斯模板求二阶导得到LoG算子,然后用LoG算子对原始图像进行滤波,就以一个步骤,来完成了高斯拉普拉斯滤波的两个步骤。推导如下:

h(t)就指代高斯模板G(x,y)。*号表示卷积。对于二阶导,公式也是成立的。这说明:对高斯模板求二阶导得到LoG算子等价于,先与高斯模板滤波,再求laplacian算子滤波。

求二阶导得到LoG算子:


其中2pi常数不见了是因为:我们最终获取的核是需要归一化的,如果当前卷积的窗口全是同一个值,那么卷积结果应该还是这个值,因此核内部的值需要乘以归一化参数,那么2pi常数便没有太大意义。

其中,方差需要用户自己根据图像特征来赋值。

推导过程来自http://fourier.eng.hmc.edu/e161/lectures/gradient/node8.html


DoG算子

DoG算子是LoG算子的近似,做法是求取不同sigma方差下的高斯滤波图像的差,这导致DoG图像有负数产生,因此实际操作时要把原图像素值设为有符号数。

我们单向变化sigma获取3张DoG图像,遍历中间DoG图像的像素,如果当前像素是其3x3x3邻域的最大值或者最小值,且满足给定的像素阈值条件,那么当前像素所在的位置就是图像的角度点。


DoG图像,方差为0.3,0.4


最大值和最小值的角点都显示为白色点。三对DoG方差为0.3-0.4,0.6-0.7,0.7-0.8


https://github.com/artzers/NGImageProcessor.git BaseSpatialFilter.py

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值