예제 #1
0
  public GrayLevelClass(ByteProcessor img, boolean first) {
    if (!probabilityHistogramDone) {
      int[] histogram = img.getHistogram();
      probabilityHistogram = new float[256];

      for (int i = 0; i < 256; i++) {
        probabilityHistogram[i] = ((float) histogram[i]) / ((float) N);
        // IJ.write(" "+probabilityHistogram[i]);
      }
      probabilityHistogramDone = true;
    }

    if (first) {
      index = 1;
      omega = probabilityHistogram[index - 1];
      if (omega == 0) mu = 0;
      else mu = 1 * probabilityHistogram[index - 1] / omega;
    } else {
      index = 2;
      omega = 0;
      mu = 0;
      for (int i = index; i < 256; i++) {
        omega += probabilityHistogram[i - 1];
        mu += probabilityHistogram[i - 1] * i;
      }
      if (omega == 0) mu = 0;
      else mu /= omega;
    }
  }