/** * Create an empty ROI and link it to the Image. * @param store MetadataStore in which to create the ROI * @param index ROI index * @return corresponding Shape ID to be used with the new ROI */ private String createROI(MetadataStore store, int index) { String roi = MetadataTools.createLSID("ROI", index); store.setROIID(roi, index); store.setImageROIRef(roi, 0, index); return MetadataTools.createLSID("Shape", index, 0); }
private void parseROIs(MetadataStore store) throws IOException { if (roiFile == null) return; String roiData = DataTools.readFile(roiFile); String[] lines = roiData.split("\r\n"); int firstRow = 0; while (firstRow < lines.length && !lines[firstRow].startsWith("ROI")) { firstRow++; } firstRow += 2; if (firstRow >= lines.length) return; for (int i=firstRow; i<lines.length; i++) { String[] cols = lines[i].split("\t"); if (cols.length < 6) break; if (cols[2].trim().length() > 0) { String rectangleID = MetadataTools.createLSID("Shape", i - firstRow, 0); store.setRectangleID(rectangleID, i - firstRow, 0); store.setRectangleX(new Double(cols[2]), i - firstRow, 0); store.setRectangleY(new Double(cols[3]), i - firstRow, 0); store.setRectangleWidth(new Double(cols[4]), i - firstRow, 0); store.setRectangleHeight(new Double(cols[5]), i - firstRow, 0); String roiID = MetadataTools.createLSID("ROI", i - firstRow); store.setROIID(roiID, i - firstRow); for (int s=0; s<getSeriesCount(); s++) { store.setImageROIRef(roiID, s, i - firstRow); } } } }
private void parseROIs(MetadataStore store) throws IOException { if (roiFile == null) return; String roiData = DataTools.readFile(roiFile); String[] lines = roiData.split("\r\n"); int firstRow = 0; while (firstRow < lines.length && !lines[firstRow].startsWith("ROI")) { firstRow++; } firstRow += 2; if (firstRow >= lines.length) return; for (int i=firstRow; i<lines.length; i++) { String[] cols = lines[i].split("\t"); if (cols.length < 6) break; if (cols[2].trim().length() > 0) { String rectangleID = MetadataTools.createLSID("Shape", i - firstRow, 0); store.setRectangleID(rectangleID, i - firstRow, 0); store.setRectangleX(new Double(cols[2]), i - firstRow, 0); store.setRectangleY(new Double(cols[3]), i - firstRow, 0); store.setRectangleWidth(new Double(cols[4]), i - firstRow, 0); store.setRectangleHeight(new Double(cols[5]), i - firstRow, 0); String roiID = MetadataTools.createLSID("ROI", i - firstRow); store.setROIID(roiID, i - firstRow); for (int s=0; s<getSeriesCount(); s++) { store.setImageROIRef(roiID, s, i - firstRow); } } } }
private void populateROI(List<String> columns, String[] data, int series, int roi, int time, int z, MetadataStore store) { String roiID = MetadataTools.createLSID("ROI", roi, 0); store.setROIID(roiID, roi); store.setImageROIRef(roiID, series, roi); store.setEllipseID(MetadataTools.createLSID("Shape", roi, 0), roi, 0); store.setEllipseTheT(new NonNegativeInteger(time), roi, 0); store.setEllipseTheZ(new NonNegativeInteger(z), roi, 0); store.setEllipseX(new Double(data[columns.indexOf("Col")]), roi, 0); store.setEllipseY(new Double(data[columns.indexOf("Row")]), roi, 0); store.setEllipseText(data[columns.indexOf("Label")], roi, 0); double diam = Double.parseDouble(data[columns.indexOf("Cell Diam.")]); double radius = diam / 2; store.setEllipseRadiusX(radius, roi, 0); store.setEllipseRadiusY(radius, roi, 0); // NB: other attributes are "Nucleus Area", "Cell Type", and // "Mean Nucleus Intens." }
private void populateROI(List<String> columns, String[] data, int series, int roi, int time, int z, MetadataStore store) { String roiID = MetadataTools.createLSID("ROI", roi, 0); store.setROIID(roiID, roi); store.setImageROIRef(roiID, series, roi); store.setEllipseID(MetadataTools.createLSID("Shape", roi, 0), roi, 0); store.setEllipseTheT(new NonNegativeInteger(time), roi, 0); store.setEllipseTheZ(new NonNegativeInteger(z), roi, 0); store.setEllipseX(new Double(data[columns.indexOf("Col")]), roi, 0); store.setEllipseY(new Double(data[columns.indexOf("Row")]), roi, 0); store.setEllipseText(data[columns.indexOf("Label")], roi, 0); double diam = Double.parseDouble(data[columns.indexOf("Cell Diam.")]); double radius = diam / 2; store.setEllipseRadiusX(radius, roi, 0); store.setEllipseRadiusY(radius, roi, 0); // NB: other attributes are "Nucleus Area", "Cell Type", and // "Mean Nucleus Intens." }
String roiID = MetadataTools.createLSID("ROI", r); for (int i=0; i<core.size(); i++) { store.setImageROIRef(roiID, i, r); String roiID = MetadataTools.createLSID("ROI", r); for (int i=0; i<core.size(); i++) { store.setImageROIRef(roiID, i, r);
String roiID = MetadataTools.createLSID("ROI", r); for (int i=0; i<core.size(); i++) { store.setImageROIRef(roiID, i, r); String roiID = MetadataTools.createLSID("ROI", r); for (int i=0; i<core.size(); i++) { store.setImageROIRef(roiID, i, r);
store.setImageROIRef(roiID, series, roi);
store.setImageROIRef(roiID, series, roi);
store.setImageROIRef(roiID, series, roiIndex); store.setROIID(roiID, roi); store.setLabelID(MetadataTools.createLSID("Shape", roi, 0), roi, 0);
store.setImageROIRef(roiID, series, roiIndex); store.setROIID(roiID, roi); store.setLabelID(MetadataTools.createLSID("Shape", roi, 0), roi, 0);
private void parseROIs(MetadataStore store) throws FormatException, IOException { String roiID = MetadataTools.createLSID("ROI", 0, 0); String maskID = MetadataTools.createLSID("Shape", 0, 0); store.setROIID(roiID, 0); store.setMaskID(maskID, 0, 0); String positionData = DataTools.readFile(roiDrawFile); String[] coordinates = positionData.split("[ ,]"); double x1 = Double.parseDouble(coordinates[1]); double y1 = Double.parseDouble(coordinates[2]); double x2 = Double.parseDouble(coordinates[3]); double y2 = Double.parseDouble(coordinates[5]); store.setMaskX(x1, 0, 0); store.setMaskY(y1, 0, 0); store.setMaskWidth(x2 - x1, 0, 0); store.setMaskHeight(y2 - y1, 0, 0); store.setImageROIRef(roiID, 0, 0); ImageReader roiReader = new ImageReader(); roiReader.setId(roiFile); byte[] roiPixels = roiReader.openBytes(0); roiReader.close(); BitWriter bits = new BitWriter(roiPixels.length / 8); for (int i=0; i<roiPixels.length; i++) { bits.write(roiPixels[i] == 0 ? 0 : 1, 1); } store.setMaskBinData(bits.toByteArray(), 0, 0); }
private void parseROIs(MetadataStore store) throws FormatException, IOException { String roiID = MetadataTools.createLSID("ROI", 0, 0); String maskID = MetadataTools.createLSID("Shape", 0, 0); store.setROIID(roiID, 0); store.setMaskID(maskID, 0, 0); String positionData = DataTools.readFile(roiDrawFile); String[] coordinates = positionData.split("[ ,]"); double x1 = Double.parseDouble(coordinates[1]); double y1 = Double.parseDouble(coordinates[2]); double x2 = Double.parseDouble(coordinates[3]); double y2 = Double.parseDouble(coordinates[5]); store.setMaskX(x1, 0, 0); store.setMaskY(y1, 0, 0); store.setMaskWidth(x2 - x1, 0, 0); store.setMaskHeight(y2 - y1, 0, 0); store.setImageROIRef(roiID, 0, 0); ImageReader roiReader = new ImageReader(); roiReader.setId(roiFile); byte[] roiPixels = roiReader.openBytes(0); roiReader.close(); BitWriter bits = new BitWriter(roiPixels.length / 8); for (int i=0; i<roiPixels.length; i++) { bits.write(roiPixels[i] == 0 ? 0 : 1, 1); } store.setMaskBinData(bits.toByteArray(), 0, 0); }
store.setROIID(roiID, roi); for (int s=0; s<getSeriesCount(); s++) { store.setImageROIRef(roiID, s, roi);
store.setROIID(roiID, roi); for (int s=0; s<getSeriesCount(); s++) { store.setImageROIRef(roiID, s, roi);
store. setImageROIRef(roiID, 0, roiNum);
store.setMaskStrokeColor(new Color(color), roi + nOverlays, 0); store.setMaskFillColor(new Color(color), roi + nOverlays, 0); store.setImageROIRef(roiId, series, roi + nOverlays); nOverlays++;
store.setMaskStrokeColor(new Color(color), roi + nOverlays, 0); store.setMaskFillColor(new Color(color), roi + nOverlays, 0); store.setImageROIRef(roiId, series, roi + nOverlays); nOverlays++;
store.setROIID(roiID, roiIndex); for (int i=0; i<core.size(); i++) { store.setImageROIRef(roiID, i, roiIndex);
store.setROIID(roiID, roiIndex); for (int i=0; i<core.size(); i++) { store.setImageROIRef(roiID, i, roiIndex);