2010-08-13 61 views

回答

2

'lerp'ing只是一種讓人感到中間價值的方式。例如,如果一個值是10,而下一個是8,那麼'lerp'函數可能會返回9.有幾種方法可以進行估計 - 線性,三角形等。在最簡單的線性方法中,您只需要使用(distance from value 1 * value 1) + (distance from value 2 * value 2)其中距離範圍從0到1.

在圖像處理中,這是通過像素之間的顏色值完成的。例如,如果您放大100%以上,則可以使用lerp函數來確定在表示部分像素的區域中繪製的內容。

我應該補充一下,我看了那篇文章,並且引用了Perlin噪聲。在這種類型的算法中,lerp'ing函數被廣泛用於計算存在數據的點之間的值,該值可以傳遞到perlin或分形算法中以生成該中間點的值。

0

你會如何合成它?通過使用該功能。該函數會給你任何像素給定輸入的輸出。對兩幅圖像進行插值雖然沒有任何意義,但您可能有興趣使用插值來調整大小。它也有一些有趣的屬性。正弦內插器相當於通過頻率空間中的磚牆低通濾波器運行圖像。

對於兩幅圖像,無論您感興趣的是什麼,您的函數都會執行某種添加或平均操作。如果合成某些東西,插值就相當於通過低通濾波器運行。例如,如果兩幅圖像以不同的速率進行採樣,並且您希望將一幅圖像放在另一幅圖像上,則您需要在較高速率的採樣圖像上插入較低的速率。

0

到底是什麼線性插值和

線性插值(因子A,B)=係數×A +(1.0 - 因子)* B

其中因素是在範圍[0, 1.0]

wikipedia

你會如何使用合成一個圖像,如果您將得到兩個圖像作爲投入?

您需要兩個相同大小的源圖像(src1,src2)和目標圖像(dst)。加插值因子。

然後對每個像素做(RGB顏色):

dst[x][y].r = lerp(factor, src1[x][y].r, src2[x][y].r) 
dst[x][y].g = lerp(factor, src1[x][y].g, src2[x][y].g) 
dst[x][y].b = lerp(factor, src1[x][y].b, src2[x][y].b)