private void buildLines() { lines = new ArrayList<>(); if (this.roi.getTypeAsString().equals("Straight Line")) { Line lineRoi = (Line) this.roi; Segment line = new Segment(lineRoi.x1, lineRoi.y1, lineRoi.x2, lineRoi.y2); lines.add(line); } else { PolygonRoi roiPoly = (PolygonRoi) this.roi; int xStart; int yStart; int xEnd; int yEnd; for (int i = 0; i < roiPoly.getPolygon().npoints - 1; i++) { xStart = roiPoly.getPolygon().xpoints[i]; yStart = roiPoly.getPolygon().ypoints[i]; xEnd = roiPoly.getPolygon().xpoints[i + 1]; yEnd = roiPoly.getPolygon().ypoints[i + 1]; Segment line = new Segment(xStart, yStart, xEnd, yEnd); lines.add(line); } } }
public void fillRoiTransparent(Roi roi) { int index = preview.getCurrentSlice(); Polygon poly = ((PolygonRoi)roi).getPolygon(); ImageProcessor ip = stack.getProcessor(index); ip = ip.convertToRGB(); BufferedImage bi = (BufferedImage)ip.createImage(); Graphics2D g = bi.createGraphics(); Color col = new Color(color); col = new Color(col.getRed(), col.getGreen(), col.getBlue(), alpha); g.setColor(col); g.fill(poly); g.dispose(); stack.setSlice(index, ip); }
RoiDecoder rd = new RoiDecoder("/home/albert/Desktop/t2/test-spline/1152-polygon.roi"); PolygonRoi sroi = (PolygonRoi)rd.getRoi(); Polygon pol = sroi.getPolygon(); double[] x = new double[pol.npoints]; double[] y = new double[pol.npoints];
protected static Polygon getPolygon(Roi[] rois, int sliceIndex) { if (rois[sliceIndex] == null || !(rois[sliceIndex] instanceof PolygonRoi)) return null; PolygonRoi roi = (PolygonRoi)rois[sliceIndex]; if (roi.isSplineFit()) { roi = (PolygonRoi)roi.clone(); roi.removeSplineFit(); } return roi.getPolygon(); }
protected Polygon getPolygon(int sliceIndex) { PolygonRoi roi = rois[sliceIndex]; if (roi.isSplineFit()) { roi = (PolygonRoi)roi.clone(); roi.removeSplineFit(); } return roi.getPolygon(); }
protected PolygonRoi flipROI(PolygonRoi roi) { if (roi.isSplineFit()) { roi = (PolygonRoi)roi.clone(); roi.removeSplineFit(); } Polygon polygon = roi.getPolygon(); for (int i = 0; i < polygon.npoints / 2; i++) { int dummy = polygon.xpoints[i]; polygon.xpoints[i] = polygon.xpoints[polygon.npoints - 1 - i]; polygon.xpoints[polygon.npoints - 1 - i] = dummy; dummy = polygon.ypoints[i]; polygon.ypoints[i] = polygon.ypoints[polygon.npoints - 1 - i]; polygon.ypoints[polygon.npoints - 1 - i] = dummy; } return new PolygonRoi(polygon, roi.getType()); }
int roiNum, int shape, int c, int z, int t) int[] xCoordinates = roi.getPolygon().xpoints; int[] yCoordinates = roi.getPolygon().ypoints; String st1 = roi.getTypeAsString(); String points = "1";
int roiNum, int shape, int c, int z, int t) int[] xCoordinates = roi.getPolygon().xpoints; int[] yCoordinates = roi.getPolygon().ypoints; String st1 = roi.getTypeAsString(); String points = "1";
if (Recorder.record && userCreated && (type==POLYGON||type==POLYLINE||type==ANGLE ||(type==POINT&&Recorder.scriptMode()&&nPoints==3))) Recorder.recordRoi(getPolygon(), type); if (type!=POINT) modifyRoi(); LineWidthAdjuster.update();
if (Recorder.record && userCreated && (type==POLYGON||type==POLYLINE||type==ANGLE ||(type==POINT&&Recorder.scriptMode()&&nPoints==3))) Recorder.recordRoi(getPolygon(), type); if (type!=POINT) modifyRoi(); LineWidthAdjuster.update();
public int drawRoi(Roi roi, int speed) { int index = preview.getCurrentSlice(); Polygon poly = ((PolygonRoi)roi).getPolygon(); int n = poly.npoints; int[] x = poly.xpoints;