2010-08-02 24 views
2

好的,我正在尋找類似積分圖像(求和麪積表)的東西,用於在窗口上進行積分計算的加速。關於二維離散函數多線積分的快速算法

我有一個圖像I和它的梯度圖像G.我想計算在絕對值的圖像中的兩個任意點a和b的直線積分。顯然,我可以跨越線(1- t)a + t * b,t在[0,1]中並且在給定正確的t步長的情況下求和。然而,我想要這樣做幾百萬次,所以我想要一些加速結構,最好不要求我爲每對(a,b)運行一個循環。

有誰知道現有的算法來完成這種事情?

回答

0

我認爲答案是否定的。如果您要整合漸變而不是其絕對值,那麼這將是微不足道的。

雖然我會有另一個擔憂:你如何插入G?您將擁有像素值,並且您將用於計算積分的採樣點通常不會完全落在像素上。 「選擇最接近的像素值」或「在四個鄰居之間進行插值」都可以。後者更精確,前者更快。

由於| G |很可能不會很順利,除了(昂貴的)梯形法則之外,您將別無選擇。

編輯:看看Bresenham's algorithm。既然你不會插入,它應該提供有用的優化。

+0

是的,那就是我所害怕的。謝謝亞歷山大,爲了防止有人知道一些瘋狂的算法技術,我會在一兩天內不予答覆。至於你關於在G上插值的問題,這並不需要非常精確的計算,所以我打算只柵格化點之間的線並對所有線像素的值進行求和。 – jcb 2010-08-02 15:48:34

+0

@quadelirius:看到我的編輯,因爲你不會插入。 – 2010-08-02 15:54:50

+0

梯形法則不一定非常昂貴。看到我的帖子進行了很好的優化。 – riwalk 2010-08-02 16:11:40

1

你似乎知道你的數學,所以我會建議adaptive quadrature算法。

它最常用於有效地計算簡單的2D積分,但是您可以很好地使用它來處理您正在處理的內容。