Mercurial > repos > bgruening > imagej2_crop
view 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 source
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)