Mercurial > repos > imgteam > 2d_auto_threshold
view auto_threshold.xml @ 10:2ee04d2ebdcf draft default tip
planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/2d_auto_threshold/ commit 71f7ecabba78de48147d4a5e6ea380b6b70b16e8
| author | imgteam |
|---|---|
| date | Sat, 03 Jan 2026 14:43:10 +0000 |
| parents | 50fa6150e340 |
| children |
line wrap: on
line source
<tool id="ip_threshold" name="Threshold image" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.05"> <description>with scikit-image</description> <macros> <import>creators.xml</import> <import>tests.xml</import> <token name="@TOOL_VERSION@">0.25.2</token> <token name="@VERSION_SUFFIX@">0</token> <xml name="inputs/offset"> <param name="offset" type="float" value="0" label="Offset" help="Offset to be added to the automatically determined threshold value. Positive values will increase the threshold (and thus reduce the amount of values above the threshold)."/> </xml> </macros> <creator> <expand macro="creators/bmcv"/> <expand macro="creators/kostrykin"/> </creator> <edam_operations> <edam_operation>operation_3443</edam_operation> </edam_operations> <xrefs> <xref type="bio.tools">galaxy_image_analysis</xref> <xref type="bio.tools">giatools</xref> <xref type="bio.tools">scikit-image</xref> <xref type="biii">scikit-image</xref> </xrefs> <requirements> <requirement type="package" version="@TOOL_VERSION@">scikit-image</requirement> <requirement type="package" version="0.7.3">giatools</requirement> <requirement type="package" version="0.12.2">ome-zarr</requirement> </requirements> <required_files> <include type="literal" path="auto_threshold.py"/> </required_files> <command detect_errors="aggressive"><![CDATA[ python '$__tool_directory__/auto_threshold.py' #if $input.extension == "zarr" --input '$input.extra_files_path/$input.metadata.store_root' #else --input '$input' #end if --output ./out.tiff --params '$params' --verbose ]]></command> <configfiles> <configfile name="params"><![CDATA[ { #if str($th_method.method_id).startswith('loc_') "block_size": $th_method.block_size, #end if #if $th_method.method_id != "manual" "offset": $th_method.offset, #else "threshold1": $th_method.threshold1, #if str($th_method.threshold2) != "" "threshold2": $th_method.threshold2, #else "threshold2": null, #end if #end if "method": "$th_method.method_id", "invert": $invert_output } ]]></configfile> </configfiles> <inputs> <param name="input" type="data" format="tiff,zarr,png,jpg" label="Input image"/> <conditional name="th_method"> <param name="method_id" type="select" label="Thresholding method"> <option value="manual">Manual</option> <option value="otsu" selected="True">Globally adaptive / Otsu</option> <option value="li">Globally adaptive / Li's Minimum Cross Entropy</option> <option value="isodata">Globally adaptive / Isodata</option> <option value="yen">Globally adaptive / Yen</option> <option value="loc_gaussian">Locally adaptive / Gaussian</option> <option value="loc_median">Locally adaptive / Median</option> <option value="loc_mean">Locally adaptive / Mean</option> </param> <when value="manual"> <param name="threshold1" type="float" value="0" label="Threshold value"/> <param name="threshold2" type="float" value="" optional="true" label="Second threshold value for hysteresis thresholding"/> <param name="offset" type="hidden" value="0"/> </when> <when value="otsu"> <expand macro="inputs/offset"/> </when> <when value="li"> <expand macro="inputs/offset"/> </when> <when value="isodata"> <expand macro="inputs/offset"/> </when> <when value="yen"> <expand macro="inputs/offset"/> </when> <when value="loc_gaussian"> <param name="block_size" type="integer" value="5" label="Odd size of pixel neighborhood for determining the threshold"/> <expand macro="inputs/offset"/> </when> <when value="loc_median"> <param name="block_size" type="integer" value="5" label="Odd size of pixel neighborhood for determining the threshold"/> <expand macro="inputs/offset"/> </when> <when value="loc_mean"> <param name="block_size" type="integer" value="5" label="Odd size of pixel neighborhood for determining the threshold"/> <expand macro="inputs/offset"/> </when> </conditional> <param name="invert_output" type="boolean" checked="false" label="Invert output labels" help="Pixels are usually assigned the label 0 if the pixel value is below (or equal to) the threshold, and 255 if it is above the threshold. If this option is activated, pixels are assigned the label 255 if the pixel value is below (or equal to) the threshold, and 0 if it is above the threshold."/> </inputs> <outputs> <data format="tiff" name="output" from_work_dir="out.tiff" /> </outputs> <tests> <!-- Tests for single-channel images (TIFF) --> <test> <param name="input" value="input/sample.tiff"/> <conditional name="th_method"> <param name="method_id" value="loc_gaussian"/> <param name="block_size" value="51"/> </conditional> <expand macro="tests/binary_image_diff" name="output" value="output/out1.tiff" ftype="tiff"/> </test> <test> <param name="input" value="input/sample.tiff"/> <conditional name="th_method"> <param name="method_id" value="loc_gaussian"/> <param name="block_size" value="51"/> <param name="offset" value="1"/> </conditional> <expand macro="tests/binary_image_diff" name="output" value="output/out2.tiff" ftype="tiff"/> </test> <test> <param name="input" value="input/sample.tiff"/> <conditional name="th_method"> <param name="method_id" value="otsu"/> </conditional> <expand macro="tests/binary_image_diff" name="output" value="output/out3.tiff" ftype="tiff"/> </test> <test> <param name="input" value="input/sample.tiff"/> <param name="invert_output" value="True"/> <conditional name="th_method"> <param name="method_id" value="manual"/> <param name="threshold1" value="64"/> </conditional> <expand macro="tests/binary_image_diff" name="output" value="output/out4.tiff" ftype="tiff"/> </test> <test> <param name="input" value="input/sample.tiff"/> <conditional name="th_method"> <param name="method_id" value="manual"/> <param name="threshold1" value="180"/> <param name="threshold2" value="240"/> </conditional> <expand macro="tests/binary_image_diff" name="output" value="output/sample_manual_180_240.tiff" ftype="tiff"/> </test> <!-- Tests for multi-channel images (PNG) --> <test> <param name="input" value="input/rgb.png"/> <conditional name="th_method"> <param name="method_id" value="otsu"/> </conditional> <expand macro="tests/binary_image_diff" name="output" value="output/rgb_otsu.tiff" ftype="tiff"/> </test> <!-- Tests for irregular files (TODO: clear up what this means) --> <test> <param name="input" value="input/sample2.tiff"/> <conditional name="th_method"> <param name="method_id" value="otsu"/> </conditional> <expand macro="tests/binary_image_diff" name="output" value="output/out5.tiff" ftype="tiff"/> </test> <!-- Tests for exotic files --> <test> <param name="input" value="input/input5.jpg"/> <conditional name="th_method"> <param name="method_id" value="li"/> </conditional> <expand macro="tests/binary_image_diff" name="output" value="output/input5_li.tiff" ftype="tiff"/> </test> <test> <param name="input" value="input/input8_zyx.zarr"/> <conditional name="th_method"> <param name="method_id" value="yen"/> </conditional> <expand macro="tests/binary_image_diff" name="output" value="output/input8_yen.tiff" ftype="tiff"/> </test> </tests> <help> **Applies a standard thresholding algorithm to an image. Yields a binary image.** The thresholding algorithm automatically determines a threshold value (unless manual thresholding is used). The input image is then thresholded, by assigning white (pixel value 255) to image regions above the determined threshold, and black (pixel value 0) to image regions below or equal to the determined threshold. For multi-channel images, each channel is processed separately, which, for example, may also yield colors beyond black and white in case of RGB images. The assignment of the pixel values 0 and 255 (i.e. black and white) to image regions below and above the threshold is inverted, if the corresponding option is set. </help> <citations> <citation type="doi">10.1016/j.jbiotec.2017.07.019</citation> </citations> </tool>
