2013-06-29 63 views
1

如果我有一個矩陣爲什麼imresize產生的值大於最大?

>> M=[0 0 1 1 0 ] 
M = 
    0  0  1  1  0 

,並調整其大小

>> imresize(M,[1,size(M,2)*2]) 

我得到答案

ans = 
     0 -0.0234 -0.0703 0.2031 0.7969 1.0938 1.0938 0.7969 0.2031 -0.0703 

我原來的排列沒有任何值小於0或大於1 。它如何包含大於1的值或小於0的值?

+1

-0.0703不小於零?必須是某種新的數學。 – 2013-06-29 12:59:27

+0

時髦的數學(tm)也適用於-0.0234。 –

+0

@woodchips這是答案:) –

回答

11

我假設你的問題是:「爲什麼插值的結果可能大於或小於原始信號的最大值或最小值」。

答案是它取決於你的插值類型。舉例來說,如果你最近鄰插值,也不會發生:

imresize(M,[1,size(M,2)*2],'nearest') 
ans = 

0  0  0  0  1  1  1  1  0  0 

它不會在雙線性發生以及:

imresize(M,[1,size(M,2)*2],'bilinear') 
ans = 
    0   0   0 0.2500 0.7500 1.0000 1.0000 0.7500 0.2500   0 

它確實發生在雙三次插值,這是默認:

imresize(M,[1,size(M,2)*2],'bicubic') 

這確實是雙三次插值的特性之一。要了解爲什麼會發生,看看一維的情況下(立方插值):

enter image description here

相關問題