Mathematica的ImageResize函数支持许多重采样方法。

不熟悉这一领域,除了最近的邻居,双线性,双二次和双三次(从名称上可以明显看出),我迷路了。 br />您能否指出一些可以解释这些方法之间的基本(数学)差异的资料,特别指出实际差异(例如,通过显示示例图像,说明方法的选择真正重要,并引入明显的差异)?

我没有信号处理背景,所以我希望有一个“温和的”和简洁的介绍:-)


我将在这里复制那些“懒惰”的ImageResize方法列表单击链接:


“最近”最近邻居重采样
“双线性”双线性插值
“双二次”双二次样条插值
“双三次”双三次样条插值
“高斯”高斯重采样
“兰考斯” Lanczos多变量te插值方法
“余弦”余弦插值
“ Hamming”升余弦汉明插值
“ Hann”升余弦Hann插值
“ Blackman”三项广义升余弦
“ Bartlett”三角形窗口插值
“ Connes”平方Welch插值
“ Welch” Welch二次插值
“ Parzen”分段三次插值
“ Kaiser”零阶修改贝塞尔插值



评论

这个问题对我来说似乎太广泛了。最好将其分成特定的方法,并针对遇到问题的方法提出特定的问题。

与您的问题有些切线,您可能会发现此图像上采样比较很有趣:general-cathexis.com/interpolation/index.html

我要注意的是,您编写的所有方法都是不变的。我认为更先进的上采样方法是Edge Aware,因此还有Space Variant。

这是倒数第二个变换。它称为PB变换,它通过根据在许多其他图像上进行训练后将要发生的情况的概率来预测值来对图像进行变换。这是[结果] [1]的样子。 [1]:v1.std3.ru/57/a9 / ...

#1 楼

给定一个具有$ m,n $整数的图像$ I(m,n)$,可以将该图像在任意点$ m',n'$的插值写为

$$ \波浪号{I}(m',n')= \ sum_ {m = \ left \ lfloor m'\ right \ rfloor-w + 1} ^ {\ left \ lfloor m'\ right \ rfloor + w} \ \ sum_ {n = \ left \ lfloor n'\ right \ rfloor-w + 1} ^ {\ left \ lfloor n'\ right \ rfloor + w} I(m,n)\ f(m'-m,n'- n)$$

结果$ \ tilde {I} $仍然仅是真实基础连续图像$ \ mathcal {I}(x,y)$以及所有其他不同插值函数的近似值

在信号处理中,您希望插值函数$ f(m,n)$是理想的低通滤波器。但是,其频率响应需要无限的支持,并且仅对带宽受限的信号有用。大多数图像不受带宽限制,并且在图像处理中还需要考虑其他因素(例如眼睛如何解释图像。数学上最佳的视觉效果可能并不吸引人)。插值函数的选择与窗口函数非常相似,这在很大程度上取决于当前的特定问题。我还没有听说过Connes,Welch和Parzen(也许它们是特定于领域的),但是其他应该是上面Wikipedia链接中给出的一维窗口的数学函数的二维等效项。

就像时间信号的窗口函数一样,通过查看图像插值内核的频率响应,可以很容易地了解其本质。根据我对窗口函数的回答:


描述窗口函数的两个主要因素是:


主瓣的宽度(即
旁瓣的衰减(即旁瓣距主瓣的距离有多远)是什么?这将告诉您有关窗口中的光谱泄漏的信息。

这对于内插内核几乎成立。该选择基本上是在频率滤波(旁瓣的衰减),空间定位(主瓣的宽度)和减少其他影响(例如振铃(吉布斯效应),混叠,模糊等)之间进行权衡。例如,具有振荡的核因为Sinc内核和Lanczos4内核会在图像中引入“振铃”,而高斯重采样不会引入振铃。

这是Mathematica中的一个简化示例,让您看到了不同插值函数的效果:

true = ExampleData[{"TestImage", "Lena"}];
resampling = {"Nearest", "Bilinear", "Biquadratic", "Bicubic", 
   "Gaussian", "Lanczos", "Cosine", "Hamming", "Hann", "Blackman", 
   "Bartlett", "Connes", "Welch", "Parzen", "Kaiser"};
small = ImageResize[true, Scaled[1/4]];

假设它是“精确”图像$ \ mathcal {I}(x,y)$的离散等效项,而true代表较小比例的图像$ I(m,n)$(我们不知道它是如何获得的)。我们将$ I(m,n)$插值4倍,得到与原始大小相同的$ \ tilde {I}(m',n')$。下面,我展示了该插值的结果以及与真实图像的比较:最近的和其他一些具有非常粗糙的特征,并且您基本上可以看到锯齿状的线条(查看完整尺寸的图像,而不是网格显示)。 Bicubic,biquadratic和Parzen克服了这个问题,但引入了许多模糊。在所有内核中,Lanczos似乎(在视觉上)是最吸引人的,并且是最出色的内核。

我将尝试扩展此答案,并提供更直观的示例来说明有空的时候有差异。您可能想阅读我在网上找到的这篇非常简单且内容丰富的文章(PDF警告)。

评论


$ \ begingroup $
我看到的是中缀符号吗? :->
$ \ endgroup $
–向导先生
11-11-27在11:41

$ \ begingroup $
@Wizard先生我确实说过我会做出诚实的尝试:)
$ \ endgroup $
–乳香
2011年11月27日15:03