• 评论

  • 分享

  • 收藏

教你看懂⑧老师发的小虎队解密卡——数字图像的二维傅里叶变换读图

刘庆

2023-12-06 14:10浏览 0

  • 标签:
  • 键摄者说


想起来之前有好几次都有粉丝私信问⑧老师喜欢发的这种二维FFT图怎么看,其实也不难,二维傅里叶变换的原理不讲了,想学习的话自己买本信号学的书看,现在只讲实用部分,读图

读图有以下几个原理:

0:频谱图不包含原始图片像素亮度的任何信息,也就是说频谱图中某一个像素的亮度与原图对应像素的关系就是巴基斯坦和卡巴斯基之间的关系。

1:高中数学里我们都学过,对于一维正弦波来说用Asin(ωx+φ)即可解析描述,即一维正弦波只有振幅A、频率1/ω、相位φ三个参数。对于二维正弦波来说还要加入方向矢量n,想象平面湖水上的水波纹,是不是用一维正弦波的参数加一个此时波的传播方向,便足够描述平面波的行为。

2:对于数字图像来说在这里相位是无用信息,真用的话也会单独做一张相图,所以为了作图方便,二维傅里叶变换图实际只包含了振幅A、频率1/ω、方向三个参数——一张平面坐标纸上包含的信息最多也就是xy坐标加一个z值,需要再多的话可以看看复变函数是怎么作图的,既然无此必要,肯定还是只做三个参数的普通xoy坐标系图比较方便。

那么这三个参数落到纸面上,就变成了:

3.1:对于二维傅里叶变换图中的每一个点,它到中心点的距离描述的是频率,离得越远频率越高,所以一幅正常的数字图像绝大部分都是低频信息,这部分组成了我们看到的中央亮区。

3.2:中点指向变换图中每一个亮点的矢量方向,代表了原始图像中平面波的方向n。

3.3:该点的亮度(z值)代表了原始图像里对应平面波的振幅。

那么读图方法讲完了,就让我们来解决一下实际问题吧。

方向水平向右的单频正弦波图像,做二维FFT之后结果是(0,0)和(1,0)处各有一个白点,代表图像只有基频分量,同时基频分量的方向向右。

OK上点难度,来看一个白色正方形的频谱:

原图是黑底中一个白色的正方形(懒得画了),还是按照以上三条分别读取xyz三部分信息:

基频部分强度最高

存在分别从x、y轴方向运行的二维信号

信号从低频到高频强度逐步衰减。

对比方波的一维傅里叶变换:

完美符合低频振幅大,高频振幅小,而且是等距合成的特点,两个正交方波扣一起,就变成了一个正方形嘛,没毛病。

那么,你已经熟练掌握了二维傅里叶变换读图方式了,就来解析一下⑧老师说的黑话吧

直接拿⑧老师的四张原图,咱再带你们分析一遍好了。首先某点到中心的距离代表图像的空间频率数值,所以可以看亮斑的包络面积,图1 2很明显小于图3 4,所以可以判断图1 2是1080p,而图3 4是4K视频截图。

判断实际采样频率同样是看包络面积,FFT图中极细的、贯穿上下左右的十字亮条稍有常识的话你就会想到肯定是来自于图像的随机噪声,所以看的话就看雾状的包络延伸到什么位置,这可以大概看作图片的有效信息。很明显图1的雾状包络面积小于图2,具体分布上也有区别。

图1虽然覆盖面积小但是对称性更好,也就意味着频率是各个方向均匀衰减的,高频没有细节源自于自身的采样率不足——说白了,跳行了呗。

图2水平方向上的延伸(高频上限)大于垂直方向的,大于四个象限45度角方向——明显的人为截断,很明显加入了某种形式的Low-Pass Filter(低通滤波)。

至于这个波是怎么滤的,稍微扩展讲点数字低通原理。众所周知图像处理靠卷积,低通也不例外,例如3x3的卷积核

让这个图形从图像的左侧移动到右侧,会将其邻域内的每个像素乘以1,然后累加再取平均(除以9),最后用这个平均值替换原像素的值。想想滑动平均值和时域卷积的原理,我觉得这个不难理解。

但是用这个滤波器滤出来的结果会呈现出明显的卷积核自身形状,因为卷积核之外的部分都是0(再次补充tip:空域卷积对应频域里的乘法运算)

根据这个原理和傅里叶变换/反变换的对易关系,即可从频谱图中反向猜出滤波卷积核的大概形状,然后反推传感器的采样原理。

由于空域卷积对应频域乘,所以也不客气,大胆的把异常的黑色区域在卷积核上对应的位置填0:

0 1 0

1 1 1

0 1 0

即可得到⑧老师文中差不多的结论,即垂直方向的像素合并,然后再做1:2的Digital Binning,此时这⑨个像素合并之后的频率基本由低频分量决定,从而实现了低通滤波,从物理原理上来讲跟佳能R5的多点OLPF倒是有十分甚至九分的相似。

接下来说两张4K的,为了方便大家不往回翻就再发一遍

首先超采样肯定没得说,一直到最角落里还有肉眼可见的频率分量强度,非常饱满的频谱。

但是呢有些高频区域出现了本不应该出现在这里的亮斑,而且亮斑指示的波动方向从高频区直接指向低频区,或者说是一大块(相对)的频率区域都有对应的信号分布,这时候做过二维信号处理也应该反应过来一个经典现象了:过冲

对应到图像当中就是过锐化,会产生毛刺、锯齿一类的异常观感,需要使用抗锯齿等手段。如果要求比较严格的话,过冲的细节是不计算分辨率,也不能正常使用的,此时的实际分辨率,应该以红圈的半径为准:

最后就是这个做了AA的,但我更倾向于它是在降噪的过程当中顺手做的,证据就是前面说的来自于图像噪声的十字亮条频谱在这里末端被截断了。总体来说就是先降噪再超分,可能就是⑧老师说的上变换抗锯齿?等会儿,我怎么闻到了一股子皮衣的味道……

“补充

 ​​​最后突然发现8老师没提欠采样混叠我也顺着没讲,实际上粗略判断是否由于像素太低/跳行采样导致高频混叠入低频的方法也很简单,看看有没有在高频区和低频区重复出现,而且有对称性的特征形状就行了(注意高低频是关于原点中心对称的,那些穿过y轴的横纹图样显然不算),比如这张图里这个类似阿拉伯数字“3”的图形。不过人眼看总归不太准,跑一下SFR的话结论会明确一些。”

评论

暂无评论,快来添加评论哦