void init() {
    m_nExcludingType = -1;
    m_pnPixelsCompensated = new int[h][w];
    m_pnPixels = new int[h][w];
    m_pnPixelsTemp = new int[h][w];

    constructRings();
    m_cvHists = new ArrayList();

    CommonMethods.getPixelValue(impl, impl.getCurrentSlice(), m_pnPixels);
    Point p = new Point(0, 0);

    int pRange[] = new int[2];
    CommonMethods.getPixelValueRange_Stack(impl, pRange);
    int nNumRings = m_cvRings.size();

    m_pcMeanSems_Mean = new MeanSem0[nNumRings];
    m_pcMeanSems_Median = new MeanSem0[nNumRings];
    m_cPixelMeanSems = new MeanSem0();
    m_cAreaMeanSems_Mean = new MeanSem0();
    m_cAreaMeanSems_Median = new MeanSem0();

    Histogram hist;
    for (int r = 0; r < nNumRings; r++) {
      hist = new Histogram();
      hist.update(0, pRange[0], pRange[1], 1);
      m_cvHists.add(hist);
      m_pcMeanSems_Mean[r] = new MeanSem0();
      m_pcMeanSems_Median[r] = new MeanSem0();
    }

    m_pdAutoCorr_mean = new double[nNumRings];
    m_pdAutoCorr_median = new double[nNumRings];

    m_nPercentileDivision = (int) (1. / m_dDeltaPercentile);
    m_pcRingMeanSems_Mean = new MeanSem0[m_nPercentileDivision][nNumRings];
    m_pcRingMeanSems_Median = new MeanSem0[m_nPercentileDivision][nNumRings];
    m_cPixelMeanSems_trail = new MeanSem0[m_nPercentileDivision];
    m_pnAveRadius = new int[m_nPercentileDivision];
    m_pnStamp = new int[h][w];
  }