2012-11-01 46 views
0

我想嘗試使用查找表(cvLUT)來檢查它是否比我現在正在執行的當前方式快。問題是如果我有不同的值集合,我不太瞭解如何查看錶格。如何爲不同範圍的值創建查找表

if(mean < 50) 
//do gamma correction 
else if(mean > 50 && mean < 100) 
// do gamma correction 
else 
//do do gamma correction 

我看到我們需要先計算查找表,但平均值是使用本地窗口在本地計算的。我怎樣才能做到這一點?我嘗試在矢量中存儲平均值,然後使用它,但存儲在矢量中時速度非常慢。

回答

0

我不認爲查找表適合您正在做的事情,因爲轉換依賴於本地窗口中的信息。如果您希望對所有像素進行變換,而該變換隻取決於像素值,並且不依賴於其他像素的值,則查找表格很好。

+0

Owh.really.Thank您的信息。 =) – Mzk

0

如果性能是您正在尋找的內容,那麼很難打敗內聯彙編。

int mean; 

asm { 
cmp mean, 99 
jg _else  
cmp mean, 50 
jl _if 
_else_if: 
} 
// gamma correction 
asm { _else: } 
// gamma correction 
asm { _if: } 
// gamma correction