信号处理(三)
本篇介绍
本篇接续信号处理的介绍。
图像中的信号处理
信号处理在采样图像中使用的最为广泛。
比如图像的模糊就是将图像和低通滤波器进行卷积,比如盒子滤波器,高斯滤波器等,效果如下:
image.png
图像的锐化就是增强图像的高频部分,凸显图像的细节,简单的方法就是将原始图像减去一个因子乘以模糊后的图像,同时原始图像也放大一定的比例,保证整体能量恒定。计算公式如下:
image.png
锐化后的效果如下:
image.png
d就是离散脉冲信号。
图像的投影本质上就是模糊滤波器和平移滤波器的综合。公式如下:
image.png
image.png
效果如下:
image.png
图像抗锯齿
在对图像采样过程中,也就是针对2D连续信号进行采样,如果不加任何处理,结果就会出现摩尔纹或锯齿,效果如下,左边是摩尔纹,右边是锯齿:
image.png
摩尔纹的现象就是出现重复的样式,原因就是采样频率和原始信号频率接近时,就会出现周期性的重叠。
原因就是因为图像的像素值也有空间属性,并不能简单取一个整数点的值,可以通过一个低通滤波,也就是先对点的值进行抹平(用周围像素的平均值代替当前值), 这时候效果如下,出现摩尔纹了:
image.png
使用B样条时摩尔纹少一些,图像更加模糊了,因此就需要权衡走样和锐化来选择对应的滤波器。
重建和重采样
比如需要将一张(3000*2000)图像调整成(1280:1024),如何做呢?最直观的方法就是丢弃像素点,这样计算也快,实际上这样搞出来的效果不好,上面的摩尔纹和锯齿图像就是丢像素搞出来的。原因还是因为像素点也有空间属性,最科学的方法应该是先重建,再采样,参考图如下:
image.png
这时候我们可以看到需要用到2个滤波器,一个是重建滤波器,一个是采样滤波器。而两个卷积的乘积可以用一个卷积代替。
image.png
这两个滤波器合起来就是重采样滤波器。
重采样伪代码如下:
image.png
这儿有一个问题需要考虑下,遇到边界时怎么处理?比如像素点的周围边界超出了原始图像范围,这时候一般的策略如下:
- 将对应的值看成0,实际上就是补0
- 将对应的值用边界值代替,实际上就是补边界值
-
重新标准化滤波器,对于边界值,如果采样点少了,用采样值除以落到边界里面的权值和。
实际中,第三种效果是最好的。第一种会有问题,第二种实现起来最简单。
选择滤波器对于重采样是很重要的,面临的问题就是如何选择合适的滤波函数和滤波范围。
一般在选择滤波范围时考虑的是输入和输出图像的分辨率关系,如果是输出分辨率低,那么这时候采样的平滑就比较重要,因此滤波范围需要按照输出图像来,如果是输出分辨率高,那么就需要重建效果更加平滑一些,这时候的滤波范围就需要参考输入图像来。如下图所示:
image.png
对于滤波函数,一般盒子滤波最快,帐篷滤波质量中等,3次滤波效果最好。
在图像重采样时,如果使用可分离的滤波函数,正如前面介绍提到的,这时候就可以先进行行重采样,再进行列重采样,这样性能比同时采样高,流程效果如下:
image.png