public void buildIPOGContourShapes(int[][] pixelsCompensated, int[][] pnScratch, int cutoff) {
   int h = pixelsCompensated.length, w = pixelsCompensated[0].length;
   intRange xRange3 = new intRange(), yRange3 = new intRange();
   IPOGaussianNodeHandler.getRanges3(IPOGNode.IPOGs, xRange, yRange);
   xRange.setCommonRange(new intRange(0, w - 1));
   yRange.setCommonRange(new intRange(0, h - 1));
   CommonStatisticsMethods.copyArray(
       pixelsCompensated,
       pnScratch,
       yRange.getMin(),
       yRange.getMax(),
       xRange.getMin(),
       xRange.getMax());
   IPOGaussianNodeHandler.getSuperImposition(pnScratch, IPOGNode.IPOGs);
   if (pnScratch[cy][cx] < cutoff) {
     cContourShape = new CircleImage(3);
     cContourShape.setCenter(new Point(cx, cy));
     cContourShape.setFrameRanges(new intRange(0, w - 1), new intRange(0, h - 1));
   } else {
     ArrayList<Point> contour =
         ContourFollower.getContour_Out(
             pnScratch, w, h, new Point(cx, cy), cutoff, Integer.MAX_VALUE, true);
     cContourShape = ImageShapeHandler.buildImageShape(contour);
   }
 }