1.为什么图像是波?
我们知道,图像由像素组成。下图是一张 400 x 400 的图片,一共包含了 16 万个像素点。
如果把每一行所有像素的R、G、B的值,依次画成三条曲线,就得到了下面的图形
其中x轴为像素坐标(取值范围0399),y轴为色度(取值范围0255)
可以看到,每条曲线都在不停的上下波动。有些区域的波动比较小,有些区域突然出现了大幅波动(比如 54 和 324 这两点)。
对比一下图像就能发现,曲线波动较大的地方,也是图像出现突变的地方。
[图片上传失败...(image-5898be-1583586969855)]
这说明波动与图像是紧密关联的。波也可以作为图像的一种表现方法,我们完全可以用上面的波形图来表示图片,效果是等价的。其实图像的本质就是各种色彩波的叠加。
2.图像的频域表现形式
综上所述,图像就是色彩的波动:波动大,就是色彩急剧变化;波动小,就是色彩平滑过渡。因此,波的各种指标可以用来描述图像。
频率是波动快慢的指标,单位时间内波动次数越多,频率越高,反之越低。
上图按照波的频率可以划分成两个部分:
天空:都是蓝色,色值变化很小,在Y轴上波动很小,振幅长,频率低
鸟:跟背景对比色差大,在Y轴上波动大,振幅短,频率高
低频的蓝色波和高频的白色波叠加在一起构成了整张图片,如果我们以频率为界线,可以很容易将上图的天空和鸟分离出来,这在图片处理中非常有用。按频率来划分图片的意义就像把一张色彩复杂的图片转换成一片片纯色的背景。
那么我们如何将图片从像素数据转成频率数据呢?这就要用到著名的傅里叶变换,如果你还不了解什么是傅里叶变换,推荐看两个视频:
https://www.ixigua.com/i6684853976225022471/?logTag=B98cRXPPfC9kH6T_KRIv_
https://www.bilibili.com/video/av19141078?from=search&seid=11648598076536911524
傅里叶变换能将时域或空域信号转换成频域信号,什么意思呢?举个例子,我们都知道声音是声波组成的,假如我们以x轴为时间,y轴为声波的振幅,这就叫时域信号。自然界的声音是由很多不同频率的声音合成的,我们通过傅里叶变换能把不同频率的声波一一抽离出来,如下图
红色是时域信号,它是由多种不同频率的波形组成
蓝色线条是频域信号,线条的高度代表振幅,频域坐标点代表频率
无论是红色波形(时域信号)还是蓝色线条(频域信号)都能描述声音信息,它们是等价的。频域表现方式更容易对信号做处理,比如想去掉某个声音,直接将其中一个蓝色线条去掉就可以了。
3.DCT
由于傅里叶变换设计到复数操作,实现起来很困难,所以数字图像处理技术一般采用离散余弦变换(DCT,Discrete Cosine Transform)。
DCT变换可以将图片从像素信号转换成频率信号,高频部分位于左上角,低频部分位于右下角。
变换公式如下:
- F(u, v) 代表DCT变换后坐标(u, v)的频率
- c(u)、c(v)可以认为是一个补偿系数,可以使DCT变换矩阵为正交矩阵
- f(i, j) 代表坐标(i, j)的像素数据
假如我们有一张8x8的图片,各个像素点色值如下:
运用DCT公式,我们把像素信号转换成如下频率信号:
左上区域存储的是低频信号,右下区域存储的是高频信号
4.滤波器
所谓滤波器,就是有选择的保留指定的波,过滤掉其他波,常见的滤波器有两种:
- 低通滤波器(lowpass):减弱或阻隔高频信号,保留低频信号
- 高通滤波器(highpass):减弱或阻隔低频信号,保留高频信号
色彩稳定平滑的地方,就是低频区域,对应DCT的左上区域,它一般代表整张图片的整体色调和轮廓;色彩剧烈变化的地方,就是高频区域,对应DCT的右下角区域,它一般代表图片的边缘和噪声(比如脸上的小斑点)
低通滤波器只保留低频信号,去掉高频信号,效果就是图片的边缘模糊
[图片上传失败...(image-28414f-1583586969856)]
高通滤波器只保留高频信号,去掉低频信号,效果就是图片的整体色调和轮廓都被去除,只有边缘信息,一般用于边缘检测
[图片上传失败...(image-e8b59e-1583586969856)]