我在java中使用函数“RGBtoHSV”并构建V值数组(在数组ModeValue []中),然后打印不同的Modevalue []。但有些奇怪,我发现显示的V值大于1.尽管值的范围应该在[0 ... 1]。这是我的代码的一部分。
public static float[] ModeValue = new float[17415];
public static void ValueArray (Bitmap myBitmap,int minw, int maxw,int minh, int maxh) {
Rred = 0;
Ggreen = 0;
Bblue = 0;
int count = 0;
for (int i=minw;i<maxw;i++){
for (int j=minh;j<maxh;j++){
int pixel = myBitmap.getPixel(i,j);
Rred += pixel >> 16 & 0xFF;
Ggreen += pixel >> 8 & 0xFF;
Bblue += pixel & 0xFF;
Color.RGBToHSV(Rred,Ggreen,Bblue,hsvMode);
//create V array
ModeValue[count] = hsvMode[2];
HueValueMode[count] = hsvMode[0];
//can create h at this
count++;
}
}
}
请提供一些信息,我不知道如何修复它。 非常感谢你: - )