C 如何为不同的值范围创建查找表

C 如何为不同的值范围创建查找表,c,opencv,C,Opencv,我想尝试使用查找表(cvLUT)来检查它是否比我现在使用的当前方式快。问题是,如果我有不同的值集,我真的不明白查找表是如何工作的 if(mean < 50) //do gamma correction else if(mean > 50 && mean < 100) // do gamma correction else //do do gamma correction if(平均值50&&平均值

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

if(mean < 50)
 //do gamma correction
else if(mean > 50 && mean < 100)
 // do gamma correction
else 
 //do do gamma correction
if(平均值<50)
//进行伽马校正
否则,如果(平均值>50&&平均值<100)
//进行伽马校正
其他的
//做伽马校正吗

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

我认为查找表不适合您所做的操作,因为转换依赖于本地窗口中的信息。如果您希望在所有像素上进行仅取决于像素值而不取决于其他像素值的变换,则查找表很好。

如果性能是您所追求的,则很难击败内联汇编

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