diff --git a/pom.xml b/pom.xml index 14881172abce6fbeac26365e055e6b68a59bfde8..5a7658e45c574875fbeb71532082a22a9dde247a 100644 --- a/pom.xml +++ b/pom.xml @@ -7,11 +7,11 @@ <parent> <groupId>org.bioimageanalysis.icy</groupId> <artifactId>parent-pom-plugin</artifactId> - <version>1.0.1</version> + <version>1.0.6</version> </parent> <artifactId>connected-components</artifactId> - <version>4.8.7</version> + <version>4.8.8</version> <packaging>jar</packaging> diff --git a/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponent.java b/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponent.java index 6fad271bf9b35069b854d39ca9f2e79e10759531..0b20a5b6193be92c44f18ce28445723cfd224836 100644 --- a/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponent.java +++ b/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponent.java @@ -631,12 +631,17 @@ public class ConnectedComponent extends Detection implements Iterable<Point3i> /** * Paints this component onto the given sequence with the specified value * - * @param s Sequence - * @param t int - * @param c int - * @param value double - */ - public void paintOnSequence(Sequence s, int t, int c, double value) + * @param s + * Sequence + * @param t + * int + * @param c + * int + * @param value + * double + * @throws InterruptedException + */ + public void paintOnSequence(Sequence s, int t, int c, double value) throws InterruptedException { DataIteratorUtil.set(new SequenceDataIterator(s, toROI(), true, -1, t, c), value); } diff --git a/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponents.java b/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponents.java index 1360ebefe9b056ebe31eefffa5fe16c2495a2d7f..1ae45da533e9e27e1bb418f903a58afb8e53e128 100644 --- a/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponents.java +++ b/src/main/java/plugins/adufour/connectedcomponents/ConnectedComponents.java @@ -14,6 +14,7 @@ import javax.vecmath.Point3i; import javax.vecmath.Point4d; import icy.file.FileUtil; +import icy.gui.frame.progress.FailedAnnounceFrame; import icy.image.IcyBufferedImage; import icy.image.colormap.FireColorMap; import icy.main.Icy; @@ -268,28 +269,36 @@ public class ConnectedComponents extends EzPlug implements Block // never remove objects touching the Z edge in 2D (that would remove... everything!) boolean discardEdgesAlongZ = (inputSequence.getSizeZ() > 1 && discardEdgesZ.getValue()); - if (extractionMethod.getValue() == ExtractionType.ROI) + try { - int width = inputSequence.getWidth(); - int height = inputSequence.getHeight(); + if (extractionMethod.getValue() == ExtractionType.ROI) + { + int width = inputSequence.getWidth(); + int height = inputSequence.getHeight(); - Sequence labeledSequence = new Sequence(inputSequence.getMetadata()); - for (int t = 0; t < inputSequence.getSizeT(); t++) - for (int z = 0; z < inputSequence.getSizeZ(); z++) - labeledSequence.setImage(t, z, new IcyBufferedImage(width, height, 1, DataType.USHORT)); + Sequence labeledSequence = new Sequence(inputSequence.getMetadata()); + for (int t = 0; t < inputSequence.getSizeT(); t++) + for (int z = 0; z < inputSequence.getSizeZ(); z++) + labeledSequence.setImage(t, z, new IcyBufferedImage(width, height, 1, DataType.USHORT)); - short cpt = 1; - for (ROI roi : inputSequence.getROIs()) - DataIteratorUtil.set(new SequenceDataIterator(labeledSequence, roi, true), cpt++ & 0xffff); + short cpt = 1; + for (ROI roi : inputSequence.getROIs()) + DataIteratorUtil.set(new SequenceDataIterator(labeledSequence, roi, true), cpt++ & 0xffff); - componentsMap = extractConnectedComponents(labeledSequence, 0, ExtractionType.BACKGROUND_LABELED, - discardEdgesX.getValue(), discardEdgesY.getValue(), discardEdgesAlongZ, min, max, output); + componentsMap = extractConnectedComponents(labeledSequence, 0, ExtractionType.BACKGROUND_LABELED, + discardEdgesX.getValue(), discardEdgesY.getValue(), discardEdgesAlongZ, min, max, output); + } + else + { + componentsMap = extractConnectedComponents(inputSequence, background.getValue(), + extractionMethod.getValue(), discardEdgesX.getValue(), discardEdgesY.getValue(), + discardEdgesAlongZ, min, max, output); + } } - else + catch (InterruptedException e) { - componentsMap = extractConnectedComponents(inputSequence, background.getValue(), - extractionMethod.getValue(), discardEdgesX.getValue(), discardEdgesY.getValue(), discardEdgesAlongZ, - min, max, output); + new FailedAnnounceFrame(e.getMessage()); + return; } outputSequence.setValue(output); @@ -1347,8 +1356,10 @@ public class ConnectedComponents extends EzPlug implements Block * * @param output * a sequence of type INT - * @param components Map of List of ConnectedComponent - * @param comparator Comparator of ConnectedComponents + * @param components + * Map of List of ConnectedComponent + * @param comparator + * Comparator of ConnectedComponents */ public static void createLabeledSequence(Sequence output, Map<Integer, List<ConnectedComponent>> components, Comparator<ConnectedComponent> comparator)