tze*_*nes 5 algorithm image downsampling
所以这是我的问题:
我有一个图像,图像很大(高分辨率),它需要很小(低得多的分辨率).
所以我做了天真的事情(杀死所有其他像素),结果看起来很糟糕.
所以我尝试做一些更聪明的事情(使用傅里叶变换进行低通滤波并在傅立叶空间重新采样),结果稍好但仍然相当差.
所以我的问题是,是否有一个感知动机的图像下采样算法(或实现)?
编辑:虽然我知道一些重采样技术,但我的应用程序更关心的是保留感知功能,而不是产生平滑的图像.
edit2:可以安全地假设我对数字信号处理,卷积,小波变换等有一定程度的熟悉
读这个:
好的,这是一个很好的阅读.但是理解滤波器设计会很方便.
通常,将图像从W1×H1缩放到W2×H2(其中W1,W2,H1,H2是整数)的过程是找到新的W3,H3,使得W1和W2是W3的整数因子,H1和H2是H3的整数因子,然后用零填充原始图像(用于隔离原始图像的像素),使其现在大小为W3 x H3.由于图像中存在不连续性,因此会引入高频,因此您应对图像应用低通滤波器,然后将滤波后的图像抽取为新的尺寸(W2 x H2).听起来你可能正在尝试这样做,但过滤可以在时域中完成,因此傅里叶变换不是必需的.
在实践中,我刚刚描述的过程已经过优化(您会注意到,当将卷积滤波器应用于放大图像时,大多数项将为0,因此您可以避免算法中的大多数乘法运算.例如.因为你最终扔掉了许多滤波后的结果,所以你不需要计算它们,所以你最终会对目标图像中的每个像素进行少量的乘法和加法.主要是找出哪些系数使用.)
我相信ffmpeg项目中的libswscale会做这样的事情.看看这个:
http://gitorious.org/libswscale
正如其他人所指出的那样(并且您显然已经注意到)对图像进行抽取会引入锯齿伪像.我无法确定您的重采样实现,但该技术有一些有趣的问题,具体取决于您使用的窗口大小和其他实现细节.