예제 #1
0
 void convexHull(ImagePlus imp) {
   Roi roi = imp.getRoi();
   int type = roi != null ? roi.getType() : -1;
   if (!(type == Roi.FREEROI
       || type == Roi.TRACED_ROI
       || type == Roi.POLYGON
       || type == Roi.POINT)) {
     IJ.error("Convex Hull", "Polygonal or point selection required");
     return;
   }
   if (roi instanceof EllipseRoi) return;
   Polygon p = roi.getConvexHull();
   if (p != null) imp.setRoi(new PolygonRoi(p.xpoints, p.ypoints, p.npoints, roi.POLYGON));
 }
예제 #2
0
 void convexHull(ImagePlus imp) {
   Roi roi = imp.getRoi();
   int type = roi != null ? roi.getType() : -1;
   if (!(type == Roi.FREEROI
       || type == Roi.TRACED_ROI
       || type == Roi.POLYGON
       || type == Roi.POINT)) {
     IJ.error("Convex Hull", "Polygonal or point selection required");
     return;
   }
   if (roi instanceof EllipseRoi) return;
   // if (roi.subPixelResolution() && roi instanceof PolygonRoi) {
   //	FloatPolygon p = ((PolygonRoi)roi).getFloatConvexHull();
   //	if (p!=null)
   //		imp.setRoi(new PolygonRoi(p.xpoints, p.ypoints, p.npoints, roi.POLYGON));
   // } else {
   Polygon p = roi.getConvexHull();
   if (p != null) {
     Undo.setup(Undo.ROI, imp);
     Roi roi2 = new PolygonRoi(p.xpoints, p.ypoints, p.npoints, roi.POLYGON);
     transferProperties(roi, roi2);
     imp.setRoi(roi2);
   }
 }