0

我想尝试使用查找表(cvLUT)来检查它是否比我现在正在做的当前方式快。问题是如果我有不同的值集,我真的不明白查找表是如何工作的,例如。

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

我看到我们需要先计算查找表,但平均值是使用本地窗口在本地计算的。我怎样才能做到这一点?我尝试将平均值存储在向量中然后使用它,但是当它存储在向量中时它非常慢。

4

2 回答 2

0

我认为查找表不适合您正在做的事情,因为转换取决于本地窗口中的信息。如果您想要对所有像素进行仅取决于像素值而不依赖于其他像素值的转换,则查找表是很好的选择。

于 2012-11-01T03:54:47.827 回答
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
于 2012-11-01T04:36:58.097 回答