void createEllipse(ImagePlus imp) { IJ.showStatus("Fitting ellipse"); Roi roi = imp.getRoi(); if (roi==null) {noRoi("Fit Ellipse"); return;} if (roi.isLine()) {IJ.error("Fit Ellipse", "\"Fit Ellipse\" does not work with line selections"); return;} ImageProcessor ip = imp.getProcessor(); ip.setRoi(roi); int options = Measurements.CENTROID+Measurements.ELLIPSE; ImageStatistics stats = ImageStatistics.getStatistics(ip, options, null); double dx = stats.major*Math.cos(stats.angle/180.0*Math.PI)/2.0; double dy = - stats.major*Math.sin(stats.angle/180.0*Math.PI)/2.0; double x1 = stats.xCentroid - dx; double x2 = stats.xCentroid + dx; double y1 = stats.yCentroid - dy; double y2 = stats.yCentroid + dy; double aspectRatio = stats.minor/stats.major; Undo.setup(Undo.ROI, imp); imp.deleteRoi(); Roi roi2 = new EllipseRoi(x1,y1,x2,y2,aspectRatio); transferProperties(roi, roi2); imp.setRoi(roi2); }
void createEllipse(ImagePlus imp) { IJ.showStatus("Fitting ellipse"); Roi roi = imp.getRoi(); if (roi==null) {noRoi("Fit Ellipse"); return;} if (roi.isLine()) {IJ.error("Fit Ellipse", "\"Fit Ellipse\" does not work with line selections"); return;} ImageProcessor ip = imp.getProcessor(); ip.setRoi(roi); int options = Measurements.CENTROID+Measurements.ELLIPSE; ImageStatistics stats = ImageStatistics.getStatistics(ip, options, null); double dx = stats.major*Math.cos(stats.angle/180.0*Math.PI)/2.0; double dy = - stats.major*Math.sin(stats.angle/180.0*Math.PI)/2.0; double x1 = stats.xCentroid - dx; double x2 = stats.xCentroid + dx; double y1 = stats.yCentroid - dy; double y2 = stats.yCentroid + dy; double aspectRatio = stats.minor/stats.major; Undo.setup(Undo.ROI, imp); imp.deleteRoi(); Roi roi2 = new EllipseRoi(x1,y1,x2,y2,aspectRatio); transferProperties(roi, roi2); imp.setRoi(roi2); }
void makeEllipse() { ImagePlus imp = getImage(); Roi previousRoi = imp.getRoi(); if (shiftKeyDown||altKeyDown) imp.saveRoi(); double x1 = getFirstArg(); double y1 = getNextArg(); double x2 = getNextArg(); double y2 = getNextArg(); double aspectRatio = getLastArg(); Roi roi = new EllipseRoi(x1,y1,x2,y2,aspectRatio); imp.setRoi(roi); if (previousRoi!=null && roi!=null) updateRoi(roi); resetImage(); shiftKeyDown = altKeyDown = false; }
void makeEllipse() { ImagePlus imp = getImage(); Roi previousRoi = imp.getRoi(); if (shiftKeyDown||altKeyDown) imp.saveRoi(); double x1 = getFirstArg(); double y1 = getNextArg(); double x2 = getNextArg(); double y2 = getNextArg(); double aspectRatio = getLastArg(); Roi roi = new EllipseRoi(x1,y1,x2,y2,aspectRatio); imp.setRoi(roi); if (previousRoi!=null && roi!=null) updateRoi(roi); resetImage(); shiftKeyDown = altKeyDown = false; }
roi = new RotatedRectRoi(ex1,ey1,ex2,ey2,param); else roi = new EllipseRoi(ex1,ey1,ex2,ey2,param); break;
roi = new RotatedRectRoi(ex1,ey1,ex2,ey2,param); else roi = new EllipseRoi(ex1,ey1,ex2,ey2,param); break;
case Toolbar.OVAL: if (Toolbar.getOvalToolType()==Toolbar.ELLIPSE_ROI) roi = new EllipseRoi(sx, sy, this); else roi = new OvalRoi(sx, sy, this);
case Toolbar.OVAL: if (Toolbar.getOvalToolType()==Toolbar.ELLIPSE_ROI) roi = new EllipseRoi(sx, sy, this); else roi = new OvalRoi(sx, sy, this);