2011-10-17 60 views
0

我有一個任務是將NxM的二維數組插入到AxB,其中A> N和B> M。它的目的是構建一個簡單的彩色編碼圖像(熱圖)。二維網格插值

是否正確地明白的是,例如,3×3的陣列(所有已知值)

A B C 
D E F 
G H I 

應該內插在,比方說,6×6以這種方式

A x B x x C 
x x x x x x 
D x E x x F 
x x x x x x 
x x x x x x 
G x H x x I 

其中x標記未知但內插值,對吧?

這可以在兩個嵌套for循環?我找到了bilinear interpolation formula,但在將它適配到(i,j)結果數組循環時遇到了一些麻煩。任何建議?提前致謝。

+0

*「應以這種方式插入6x6 ......」*這是一個判斷電話。我相信你已經發現有很多重採樣方法 - http://en.wikipedia.org/wiki/Resampling_%28bitmap%29 - 你選擇的取決於很多因素。 –

+0

即使考慮我的熱圖任務?我需要的結果與此類似http://upload.wikimedia.org/wikipedia/commons/c/c6/Bilininterp.png – spacevillain

回答

1

您可以使用像.NET,Qt或SDL這樣的庫來完成它,這是一個常見的應用程序任務。

如果您想自己實現,請閱讀Bilinear filtering而不是雙線性插值。 「插值」通常意味着你只在兩個值之間進行插值 - 一旦你有一個圖像,它就被稱爲濾波。

考慮更好看的過濾器,如雙三次。

+0

獲取類似此內容的正確方法http://upload.wikimedia.org/wikipedia/ commons/c/c6/Bilininterp.png?我的數組中的值是不是真正的顏色呢? – spacevillain

+0

是的,你的示例圖片完全是雙線性過濾,但它只顯示過濾*在源數據的2x2子數組*中。如果你爲每個2x2子陣列做同樣的事情,你就完成了。 –

+0

如果我的數組中的值不是實際顏色,可以先將它們映射到顏色,然後插入顏色。或者您可以插值,然後將插值值映射到顏色。這兩者會產生不同的效果(例子pic使用後一種方法,這可能更適合於熱圖)。此外,您的示例圖片具有我假設您不需要的海報效果。 –