【发布时间】:2015-02-21 12:40:46
【问题描述】:
我将这两个值传递给我的函数...
float c = -80f;
float m = 1.66f;
该函数接受两个用于图像对比度增强的浮点数,但是在 if 结构期间,程序总是进入 if else 块,这是不正确的。因此,数组中的每个值都被分配了 255,这是不正确的,任何人都可以确定为什么会这样吗?
//look up table for linear stretching
public short[] linearStretchLut(float m,float c)
{
short Lut[] = new short[256];
for(int i =0; i<Lut.length;i++){
if(i < -c/m){
Lut[i] = 0;
} else if(i > (255 - c) / m) {
Lut[i] = 255;
} else {
Lut[i] = (short) (m*i+c);
}
System.out.println(i + " " + Lut[i]);
}
return Lut;
}
一个应该使条件为假的例子......
i=10 10 > (255-c) / 米 (最终值应为 201.8) 所以这应该是一个错误的评估,但程序不会复制这种行为。
【问题讨论】:
-
您是否尝试过使用调试器?在
Lut[i] = 255;行设置断点,查看 i、c 和 m 的值。