Java 直方图特征向量

Java 直方图特征向量,java,image-processing,histogram,Java,Image Processing,Histogram,我创建了这个方法,它获取红色、绿色和蓝色的值,并将它们存储在一个临时int中,然后将该int添加到数组中。我想在不合并的情况下合并这些值,但不知道如何合并 public static double[] GetHistogram (BufferedImage img) { double[] myHistogram = new double [256]; int Temp = 0; int Temp1 = 0; int Temp2 = 0; for (i

我创建了这个方法,它获取红色、绿色和蓝色的值,并将它们存储在一个临时int中,然后将该int添加到数组中。我想在不合并的情况下合并这些值,但不知道如何合并

public static double[] GetHistogram (BufferedImage img) {
    double[] myHistogram = new double [256];

    int Temp = 0;
    int Temp1 = 0;
    int Temp2 = 0;

     for (int y = 0; y < img.getHeight(); y += 1)
     {
         for (int x = 0; x < img.getWidth(); x += 1)
         {
              int clr =  img.getRGB(x,y); 

              int  red   = (clr & 0x00ff0000) >> 16;
              int  green = (clr & 0x0000ff00) >> 8;
              int  blue  =  clr & 0x000000ff;

             Temp = 0;
             Temp1 = 0;
             Temp2 = 0; 

            Temp += red;
            Temp1 += green;
            Temp2 += blue;

             Temp = (int) Temp;
             myHistogram[Temp]++;
             myHistogram[Temp1]++;
             myHistogram[Temp2]++;
         }

     }
     return myHistogram;
 }
publicstaticdouble[]GetHistogram(BufferedImage-img){
double[]myHistogram=新的双精度[256];
内部温度=0;
int Temp1=0;
int Temp2=0;
对于(int y=0;y>16;
绿色整数=(clr&0x0000ff00)>>8;
int blue=clr&0x000000ff;
温度=0;
Temp1=0;
Temp2=0;
温度+=红色;
Temp1+=绿色;
Temp2+=蓝色;
温度=(int)温度;
myHistogram[Temp]++;
我的直方图[Temp1]++;
我的直方图[Temp2]++;
}
}
返回我的直方图;
}

不合并这些值而合并这些值是什么意思?因此,我使用此方法将图像与其他图像文件进行比较,然后根据红色、绿色和蓝色的值返回最接近的值。我想把它们组合起来,这样我就可以保留每个直方图的特定信息,而不是像我那样合并它们。然后使用三个数组-我不理解这个问题。我的意思是以某种方式合并它们,而不计算它们的平均数。有没有一种方法可以让我用更长的直方图/特征向量来实现这一点?你的代码看起来很奇怪。很多事情没有任何意义。我认为在继续之前,您应该关注编程基础知识。你把一个int转换成int,这毫无意义,但你只对三个类似变量中的一个进行转换。。。你给变量赋值为零,然后加一个正数,而不是直接给这个数赋值。。。我建议你仔细检查每一行代码,问问自己我为什么要这样做?