Mercurial > repos > bgruening > imagej2_crop
diff imagej2_adjust_threshold_binary_jython_script.py @ 0:018144807556 draft default tip
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit 8f49f3c66b5a1de99ec15e65c2519a56792f1d56
author | bgruening |
---|---|
date | Tue, 24 Sep 2024 17:12:52 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imagej2_adjust_threshold_binary_jython_script.py Tue Sep 24 17:12:52 2024 +0000 @@ -0,0 +1,57 @@ +import sys + +from ij import IJ, Prefs + +# Fiji Jython interpreter implements Python 2.5 which does not +# provide support for argparse. +input_file = sys.argv[-8] +threshold_min = float(sys.argv[-7]) +threshold_max = float(sys.argv[-6]) +method = sys.argv[-5] +display = sys.argv[-4] +black_background = sys.argv[-3] == "yes" +output_filename = sys.argv[-2] +output_datatype = sys.argv[-1] + +# Open the input image file. +input_image_plus = IJ.openImage(input_file) + +# Create a copy of the image. +input_image_plus_copy = input_image_plus.duplicate() + +bit_depth = input_image_plus_copy.getBitDepth() + +if black_background: + Prefs.blackBackground = True +else: + Prefs.blackBackground = False + +if method != "Manual": + # Set the options. + if black_background: + method_str = "%s dark" % method + suffix = "black" + else: + method_str = method + suffix = "" + threshold_min = 1 + # Set threshold_max based on image bit-depth + # For 8-bit images, use 255; for 16-bit images, use 65535 + if bit_depth == 8: + threshold_max = 255 # Default for 8-bit images + elif bit_depth == 16: + threshold_max = 65535 # Default for 16-bit images + else: + threshold_max = float('inf') # General fallback if bit depth is unknown + + IJ.setAutoThreshold(input_image_plus_copy, method_str) + IJ.run(input_image_plus_copy, "Convert to Mask", "calculate %s" % suffix) +if display == "red": + display_mode = "Red" +elif display == "bw": + display_mode = "Black & White" +elif display == "over_under": + display_mode = "Over/Under" +IJ.setThreshold(input_image_plus_copy, threshold_min, threshold_max, display_mode) +# Save the ImagePlus object as a new image. +IJ.saveAs(input_image_plus_copy, output_datatype, output_filename)