diff --git a/BioVoxxel_3D_Box/.classpath b/BioVoxxel_3D_Box/.classpath index a50ca11..928ce8d 100644 --- a/BioVoxxel_3D_Box/.classpath +++ b/BioVoxxel_3D_Box/.classpath @@ -13,7 +13,11 @@ - + + + + + diff --git a/BioVoxxel_3D_Box/pom.xml b/BioVoxxel_3D_Box/pom.xml index b8bf8a8..c7ba4a0 100644 --- a/BioVoxxel_3D_Box/pom.xml +++ b/BioVoxxel_3D_Box/pom.xml @@ -2,7 +2,7 @@ 4.0.0 de.biovoxxel bv3dbox - 1.13.4 + 1.14.2 BioVoxxel 3D Box 2021 diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/gui/BV_NeighborAnalysisGUI.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/gui/BV_NeighborAnalysisGUI.java index 702765e..d02f3e0 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/gui/BV_NeighborAnalysisGUI.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/gui/BV_NeighborAnalysisGUI.java @@ -80,7 +80,8 @@ public void run() { ImagePlus neighborCountMapImp = BV3DBoxUtilities.pullImageFromGPU(neighborAnalysis.getCurrentCLIJ2Instance(), neighbor_image, false, LutNames.GEEN_FIRE_BLUE_LUT); neighborCountMapImp.setTitle(WindowManager.getUniqueName("NeighborCount_" + inputImagePlus.getTitle())); - + System.out.println("Calibration = " + inputImagePlus.getCalibration()); + neighborCountMapImp.setCalibration(inputImagePlus.getCalibration()); neighborCountMapImp.show(); if (plotNeighborCount) { diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/gui/BV_ObjectInspectorGUI.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/gui/BV_ObjectInspectorGUI.java index 835aa50..61def07 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/gui/BV_ObjectInspectorGUI.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/gui/BV_ObjectInspectorGUI.java @@ -91,6 +91,9 @@ public class BV_ObjectInspectorGUI extends DynamicCommand { + " This however introduces a certain bias and error in any analysis and should be used with care or only in test cases.") private Boolean pad_stack_tops = false; + @Parameter(required = false, label = "Display results tables", description = "") + private Boolean display_results_tables = true; + @Parameter(required = false, label = "Show analysis label map", description = "") private Boolean display_analyzed_label_maps = false; @@ -137,7 +140,8 @@ public void run() { bvoi.setSecondaryVolumeRange(secondary_volume_range); bvoi.setSecondaryMMDTCRRange(secondary_MMER_range); bvoi.setEdgeExclusion(exclude_primary_objects_on_edges); - bvoi.setOutputImageFlags(display_analyzed_label_maps, show_count_map); + bvoi.padStackTops(pad_stack_tops); + bvoi.setOutputImageFlags(display_results_tables, display_analyzed_label_maps, show_count_map); bvoi.inspect(); } diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ConvolutedBackgroundSubtraction.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ConvolutedBackgroundSubtraction.java index f728d92..da59ddf 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ConvolutedBackgroundSubtraction.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ConvolutedBackgroundSubtraction.java @@ -2,7 +2,6 @@ import de.biovoxxel.bv3dbox.utilities.BV3DBoxUtilities; import ij.ImagePlus; -import ij.WindowManager; import net.haesleinhuepf.clij.clearcl.ClearCLBuffer; import net.haesleinhuepf.clij2.CLIJ2; diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_FlatFieldCorrection.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_FlatFieldCorrection.java index fc1ab2f..f75223e 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_FlatFieldCorrection.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_FlatFieldCorrection.java @@ -267,7 +267,7 @@ public void flatFieldCorrection() { if (showDebugImages) { - BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, corrected_image, false, LutNames.GRAY); + BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, corrected_image, false, LutNames.GRAY, originalImagePlus.getCalibration()); } @@ -288,6 +288,7 @@ public void flatFieldCorrection() { correctedImagePlus.setTitle(WindowManager.getUniqueName("FFCorr_" + originalImagePlus.getTitle())); correctedImagePlus.getProcessor().resetMinAndMax(); + correctedImagePlus.setCalibration(originalImagePlus.getCalibration()); correctedImagePlus.show(); } diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_NeighborAnalysis.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_NeighborAnalysis.java index 385decc..de84062 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_NeighborAnalysis.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_NeighborAnalysis.java @@ -57,7 +57,8 @@ public class BV_NeighborAnalysis { private LogService log = new StderrLogService(); private PrefService prefs = new DefaultPrefService(); - private Boolean displayDebugImages = prefs.getBoolean(BV3DBoxSettings.class, "bv_3d_box_settings_display_debug_images", false); +// private Boolean displayDebugImages = prefs.getBoolean(BV3DBoxSettings.class, "bv_3d_box_settings_display_debug_images", false); + private Boolean displayDebugImages = false; private CLIJ2 clij2; private ClearCLBuffer connectedComponentLabels; @@ -126,7 +127,7 @@ public ClearCLBuffer getNeighborCountMap(ClearCLBuffer input_image, String metho clij2.excludeLabelsOutsideSizeRange(size_limited_label_image, input_image, minSize, maxSize); - if(displayDebugImages) { BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, input_image, true, LutNames.GLASBEY_LUT); } + if(displayDebugImages) { BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, input_image, true, LutNames.GLASBEY_LUT, null); } size_limited_label_image.close(); } @@ -138,7 +139,7 @@ public ClearCLBuffer getNeighborCountMap(ClearCLBuffer input_image, String metho clij2.extendLabelingViaVoronoi(input_image, voronoi_image); - if (displayDebugImages) { BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, voronoi_image, false, LutNames.GLASBEY_LUT); } + if (displayDebugImages) { BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, voronoi_image, false, LutNames.GLASBEY_LUT, null); } if (method.equals(NeighborMethods.OBJECTS.method)) { @@ -289,7 +290,7 @@ public static void main(String[] args) { ImagePlus neighborCountMapImp = BV3DBoxUtilities.pullImageFromGPU(neighborAnalysis.getCurrentCLIJ2Instance(), neighbor_image, false, LutNames.GEEN_FIRE_BLUE_LUT); neighborCountMapImp.setTitle(WindowManager.getUniqueName("NeighborCount_" + inputImagePlus.getTitle())); - + neighborCountMapImp.setCalibration(inputImagePlus.getCalibration()); neighborCountMapImp.show(); if (plotNeighborCount) { diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ObjectInspector.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ObjectInspector.java index 400ab87..902082c 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ObjectInspector.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ObjectInspector.java @@ -81,6 +81,7 @@ public class BV_ObjectInspector implements Cancelable { private String secondary_MMER_range = "0.00-1.00"; private Boolean exclude_primary_objects_on_edges = true; private Boolean pad_stack_tops = false; + private Boolean display_results_tables = true; private Boolean display_analyzed_label_maps = false; private Boolean show_count_map = false; @@ -191,7 +192,8 @@ public void padStackTops(boolean pad_stack_tops) { * @param display_analyzed_label_maps * @param show_count_map */ - public void setOutputImageFlags(boolean display_analyzed_label_maps, boolean show_count_map) { + public void setOutputImageFlags(boolean display_results_tables, boolean display_analyzed_label_maps, boolean show_count_map) { + this.display_results_tables = display_results_tables; this.display_analyzed_label_maps = display_analyzed_label_maps; this.show_count_map = show_count_map; } @@ -215,6 +217,7 @@ public void inspect() { log.debug("secondary_MMDTCR_range = " + secondary_MMER_range); log.debug("exclude_primary_objects_on_edges = " + exclude_primary_objects_on_edges); log.debug("pad_stack_tops = " + pad_stack_tops); + log.debug("display_results_tables = " + display_results_tables); log.debug("display_analyzed_label_maps = " + display_analyzed_label_maps); log.debug("show_count_map = " + show_count_map); log.debug("------------------------------------------------------"); @@ -474,7 +477,7 @@ public void inspect() { final_primary_results_table.setColumn("SEC_OBJECT_COUNT", secondaryObjectCountArray); if (show_count_map) { - BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, overlapCountMap, true, LutNames.GEEN_FIRE_BLUE_LUT); //test output + BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, overlapCountMap, true, LutNames.GEEN_FIRE_BLUE_LUT, voxel_calibration); //test output } overlapCountMap.close(); @@ -585,8 +588,8 @@ public void inspect() { if (display_analyzed_label_maps) { - BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, finalLabels_1, true, LutNames.GLASBEY_LUT); - BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, finalLabels_2, true, LutNames.GLASBEY_LUT); + BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, finalLabels_1, true, LutNames.GLASBEY_LUT, voxel_calibration); + BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, finalLabels_2, true, LutNames.GLASBEY_LUT, voxel_calibration); } finalLabels_1.close(); finalLabels_2.close(); @@ -677,8 +680,10 @@ public void inspect() { secondary_original_measurements_table = null; - final_primary_results_table.show(PRIMARY_RESULTS_TABLE_NAME); - final_secondary_results_table.show(SECONDARY_RESULTS_TABLE_NAME); + if (display_results_tables) { + final_primary_results_table.show(PRIMARY_RESULTS_TABLE_NAME); + final_secondary_results_table.show(SECONDARY_RESULTS_TABLE_NAME); + } clij2.clear(); } diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_OverlapExtractor.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_OverlapExtractor.java index 044188d..879dcd1 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_OverlapExtractor.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_OverlapExtractor.java @@ -227,7 +227,7 @@ public void extract() { ClearCLBuffer percent_volume_vector = clij2.push(percent_volume_image); percent_volume_map.setName("%volume_" + image_plus_2.getTitle()); clij2.generateParametricImage(image_1_CCL, percent_volume_vector, percent_volume_map); - BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, percent_volume_map, true, LutNames.GEEN_FIRE_BLUE_LUT); + BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, percent_volume_map, true, LutNames.GEEN_FIRE_BLUE_LUT, image_plus_1.getCalibration()); percent_volume_map.close(); percent_volume_vector.close(); } @@ -237,7 +237,7 @@ public void extract() { ClearCLBuffer kept_image_1_CCL = clij2.create(image_1_CCL); kept_image_1_CCL.setName("extracted_" + image_plus_1.getTitle()); clij2.excludeLabels(flag_list_vector, image_1_CCL, kept_image_1_CCL); - BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, kept_image_1_CCL, true, LutNames.GEEN_FIRE_BLUE_LUT); + BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, kept_image_1_CCL, true, LutNames.GEEN_FIRE_BLUE_LUT, image_plus_1.getCalibration()); flag_list_vector.close(); kept_image_1_CCL.close(); diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_PostProcessor.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_PostProcessor.java index 1bef10c..e350e05 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_PostProcessor.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_PostProcessor.java @@ -62,7 +62,7 @@ public class BV_PostProcessor extends DynamicCommand { private final PrefService prefs = new DefaultPrefService(); private static CLIJ2 clij2; private ClearCLBuffer input_image; - private BV_LabelSeparator bvls = new BV_LabelSeparator(); +// private BV_LabelSeparator bvls = new BV_LabelSeparator(); /** * diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_PseudoFlatFieldCorrection.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_PseudoFlatFieldCorrection.java index 928cf05..94f9f0d 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_PseudoFlatFieldCorrection.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_PseudoFlatFieldCorrection.java @@ -1,7 +1,5 @@ package de.biovoxxel.bv3dbox.plugins; -import java.awt.Point; - import org.scijava.Cancelable; import org.scijava.log.LogLevel; import org.scijava.log.LogService; @@ -14,7 +12,6 @@ import de.biovoxxel.bv3dbox.utilities.BV3DBoxUtilities.LutNames; import ij.ImagePlus; import ij.WindowManager; -import ij.gui.ImageWindow; import ij.measure.Calibration; import net.haesleinhuepf.clij.clearcl.ClearCLBuffer; import net.haesleinhuepf.clij.coremem.enums.NativeTypeEnum; @@ -165,8 +162,7 @@ public void runCorrection(float radius, boolean force2D, boolean showBackgroundI outputImagePlus.setImage(tempOutputImagePlus); outputImagePlus.setTitle(outputImageName); - //ImageWindow inputImageWindow = inputImagePlus.getWindow(); - //Point inputImageLocation = inputImageWindow.getLocationOnScreen(); + outputImagePlus.setCalibration(inputImagePlus.getCalibration()); outputImagePlus.show(); //outputImagePlus.getWindow().setLocation(inputImageLocation.x + inputImageWindow.getWidth() + 10, inputImageLocation.y); BV3DBoxUtilities.adaptImageDisplay(inputImagePlus, outputImagePlus); diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ThresholdCheck.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ThresholdCheck.java index b1797c1..e29c6ec 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ThresholdCheck.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/plugins/BV_ThresholdCheck.java @@ -233,19 +233,20 @@ public void applyThreshold(double thresholdValue) { ImagePlus outputImagePlus = clij2.pullBinary(outputImage); outputImagePlus.setTitle(outputImageName); + outputImagePlus.setCalibration(inputImagePlus.getCalibration()); outputImagePlus.show(); } else if (outputImageStyle.equals("0/1")) { outputImage.setName(outputImageName); - BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, outputImage, true, LutNames.GRAY); + BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, outputImage, true, LutNames.GRAY, inputImagePlus.getCalibration()); } else { ClearCLBuffer labelOutputImage = clij2.create(outputImage.getDimensions(), NativeTypeEnum.Float); clij2.connectedComponentsLabelingBox(outputImage, labelOutputImage); labelOutputImage.setName(outputImageName); - BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, labelOutputImage, true, LutNames.GLASBEY_LUT); + BV3DBoxUtilities.pullAndDisplayImageFromGPU(clij2, labelOutputImage, true, LutNames.GLASBEY_LUT, inputImagePlus.getCalibration()); labelOutputImage.close(); } diff --git a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/utilities/BV3DBoxUtilities.java b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/utilities/BV3DBoxUtilities.java index 13ea085..2ba5d4f 100644 --- a/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/utilities/BV3DBoxUtilities.java +++ b/BioVoxxel_3D_Box/src/main/java/de/biovoxxel/bv3dbox/utilities/BV3DBoxUtilities.java @@ -174,7 +174,7 @@ public static String[] extendImageTitleListWithNone() { } - public static void pullAndDisplayImageFromGPU(CLIJ2 clij2, ClearCLBuffer imageToShow, boolean autoContrast, LutNames lutName) { + public static void pullAndDisplayImageFromGPU(CLIJ2 clij2, ClearCLBuffer imageToShow, boolean autoContrast, LutNames lutName, Calibration cal) { ImagePlus imagePlusToBePulled = clij2.pull(imageToShow); imagePlusToBePulled.setTitle(imageToShow.getName()); @@ -198,6 +198,12 @@ public static void pullAndDisplayImageFromGPU(CLIJ2 clij2, ClearCLBuffer imageTo } else { imagePlusToBePulled.resetDisplayRange(); } + + System.out.println("Calubration = " + cal); + if (cal != null) { + imagePlusToBePulled.setCalibration(cal); + } + imagePlusToBePulled.show(); }