首先需要有一个概念,就是计算机所能处理的都是数字信号。对于模拟信号,需要对其进行采样和量化。学过数字信号处理的都应该知道,采样后的信号,与原始的模拟信号相比不同之处在于,在频域里,数字信号在高频部分对原始的模拟信号的频谱进行了周期性的延拓。也就是说如果给你一个信号,一个理想的低通滤波器,对这个数字信号作一个理想的低通滤波,就可以无失真的还原出原始的模拟信号。
图像作为一种二维波,也是一种信号,只不过是二维的。数字图像也是对模拟图像进行采样和量化处理得来的。对于数字图像的缩放的基本原理就是,从数字图像数据,重建出原始的模拟图像,然后对这个原始的模拟图像进行重采样处理。所以数字图像缩放的过程,实质上是重建原始的模拟图像,然后重采样的过程。
因此,数字图像缩放的一步骤都是,先对数字图像进行一个低通滤波,然后再进行重采样。在工程实现上,低通滤波一般不是真正的将数字图像转换到频域,然后构建滤波器进行处理,而是使用一些更加简单的方法,比如最临近点法、双线性插值法,这些实质上都是在重建原始的模拟信号,实质上就是一个滤波的过程,相应的最近邻算法等都可以理解为实质上的滤波器。对于重采样,就体现为采样点的坐标的计算。工程上,采样和重建模拟信号不是独立进行的,基本上是同时进行的,这是为了保证效率,另外一方面就是计算机毕竟是计算机,它是永远无法表示模拟信号的。重建模拟信号在计算机中,只是一种计算模型而已,在处理过程中是看不到模拟信号的实体的,因为计算机永远无法成为模拟信号的载体。因此,一般的,都是先计算缩放后的图像的坐标与原数字图像的映射关系,这一步相当于重采样,然后再根据这个关系和模拟图像的计算模型,计算出重采样点的颜色值。处理完所有的像素点就完成了缩放处理。
当然,我讲的不是很清楚,并且大部分是理论上的知识,不具备可操作性,具体的算法可以参考我的代码。
理论方面,要想深入研究,需要学习以下课程:信号与系统、数字信号处理、计算机图形学、数字图像处理。
[此贴子已经被作者于2006-12-7 13:24:50编辑过]