int refinePixelStatitics() { stampIPOs(); int[][] pixelsTemp = m_pnPixels; m_pnPixels = m_pnPixelsCompensated; m_cIMSC.reset(); int len = m_cIMSC.m_nTotalSteps + 1; int i, c, step = 0; Point p = m_cIMSC.getPosition(); int index = 0; ImageShape shape; Histogram hist; double mean, median; int y, y0 = 0; int pixel, nRef; double dsur; int numRings = m_cvRings.size(); while (true) { p = m_cIMSC.getPosition(); y = p.y; if (y > y0) IJ.showStatus( "refinePixelStatistics " + PrintAssist.ToString(y) + "-th line of " + PrintAssist.ToString(h) + " lines!"); index = getPercentileIndex(step); dsur = m_pcRingMeanSems_Mean[index][m_nRMax].mean; ImageShapeHandler.copyElements(m_pnPixelsCompensated, m_pnPixelsTemp, m_cvRings, p); for (i = 0; i < numRings; i++) { pixel = (int) (m_pcRingMeanSems_Mean[index][i].mean - dsur); if (pixel < 1) break; shape = m_cvRings.get(i); shape.setCenter(p); ImageShapeHandler.addValue(m_pnPixelsTemp, shape, pixel); } nRef = (int) ImageShapeHandler.getMean(m_pnPixelsTemp, m_cRefRing, m_pnStamp, m_nExcludingType); CommonMethods.fillHistogram( m_pnPixelsTemp, nRef, m_cvRings.get(numRings - 1), p, m_cvHists.get(numRings - 1), m_pnStamp, m_nExcludingType); CommonMethods.fillHistograms(m_pnPixelsTemp, nRef, m_cvRings, p, m_cvHists); for (i = 0; i < numRings; i++) { hist = m_cvHists.get(i); mean = hist.getMeanSem().mean; median = hist.getPercentileValue(); m_pdRingMean[step][i] = mean; m_pdRingMedian[step][i] = median; } // m_pnPixels_trail[step]=m_pnPixelsTemp[p.y][p.x]-nRef; if (m_cIMSC.done()) break; m_cIMSC.move(); step++; } for (c = 0; c < numRings; c++) { m_pcMeanSems_Median[c] = CommonStatisticsMethods.buildMeanSem(m_pdRingMedian, c); m_pcMeanSems_Mean[c] = CommonStatisticsMethods.buildMeanSem(m_pdRingMean, c); } if (m_bPresetPoints) { len = pixelsOfPresetPoints.size(); int num = len / m_nPercentileDivision; int rI, rF; for (i = 0; i < m_nPercentileDivision; i++) { rI = Math.max(0, (int) ((i - .5) * num)); rF = Math.min(len - 1, (int) ((i + .5) * num)); for (c = 0; c < numRings; c++) { m_pcRingMeanSems_Median[i][c] = CommonStatisticsMethods.buildMeanSem(m_pdRingMedian, rI, rF, 1, c); m_pcRingMeanSems_Mean[i][c] = CommonStatisticsMethods.buildMeanSem(m_pdRingMean, rI, rF, 1, c); } } } m_pnPixels = pixelsTemp; return 1; }
void calPixelStatistics() { calRefPixels(); int len = m_cIMSC.m_nTotalSteps + 1; int numRings = m_cvRings.size(); m_pdRingMean = new double[len][numRings]; m_pdRingMedian = new double[len][numRings]; int i, c; Point p = m_cIMSC.getPosition(); int index = 0; // ImageShape shape; Histogram hist; double mean, median; int y, y0 = 0; int nRef; while (true) { p = m_cIMSC.getPosition(); y = p.y; if (y > y0) IJ.showStatus( "calPixelStatistics " + PrintAssist.ToString(y) + "-th line of " + PrintAssist.ToString(h) + " lines!"); // m_cRefRing.setCenter(p); nRef = getRefPixel(p); CommonMethods.fillHistograms(m_pnPixels, nRef, m_cvRings, p, m_cvHists); for (i = 0; i <= m_nRMax; i++) { hist = m_cvHists.get(i); mean = hist.getMeanSem().mean; median = hist.getPercentileValue(); m_pdRingMean[index][i] = mean; m_pdRingMedian[index][i] = median; } if (m_cIMSC.done()) break; m_cIMSC.move(); index++; } m_cPixelMeanSems = CommonStatisticsMethods.buildMeanSem(m_pnPixelsLR); // m_cPixelMeanSem_trail=CommonStatisticsMethods.buildMeanSem(m_pnPixels_trail); for (c = 0; c <= m_nRMax; c++) { m_pcMeanSems_Median[c] = CommonStatisticsMethods.buildMeanSem(m_pdRingMedian, c); m_pcMeanSems_Mean[c] = CommonStatisticsMethods.buildMeanSem(m_pdRingMean, c); } if (m_bPresetPoints) { len = pixelsOfPresetPoints.size(); int num = len / m_nPercentileDivision; int rI, rF; for (i = 0; i < m_nPercentileDivision; i++) { rI = Math.max(0, (int) ((i - .5) * num)); rF = Math.min(len - 1, (int) ((i + .5) * num)); // // m_cPixelMeanSems_trail[i]=CommonStatisticsMethods.buildMeanSem(m_pnPixels_trail,rI,rF,1); for (c = 0; c < numRings; c++) { m_pcRingMeanSems_Median[i][c] = CommonStatisticsMethods.buildMeanSem(m_pdRingMedian, rI, rF, 1, c); m_pcRingMeanSems_Mean[i][c] = CommonStatisticsMethods.buildMeanSem(m_pdRingMean, rI, rF, 1, c); } } } }