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; } }