Mercurial > repos > imgteam > imagej2_skeletonize3d
diff imagej2_skeletonize3d.xml @ 0:f6df6830d5ec draft
"planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/image_processing/imagej2 commit b08f0e6d1546caaf627b21f8c94044285d5d5b9c-dirty"
author | imgteam |
---|---|
date | Tue, 17 Sep 2019 16:57:15 -0400 |
parents | |
children | 768825d9034a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imagej2_skeletonize3d.xml Tue Sep 17 16:57:15 2019 -0400 @@ -0,0 +1,71 @@ +<?xml version='1.0' encoding='UTF-8'?> +<tool id="imagej2_skeletonize3d" name="Skeletonize" version="@WRAPPER_VERSION@.0"> + <description></description> + <macros> + <import>imagej2_macros.xml</import> + </macros> + <expand macro="fiji_requirements" /> + <command> +<![CDATA[ + python $__tool_directory__/imagej2_skeletonize3d.py + --input "$input" + --input_datatype $input.ext + --black_background $black_background + --jython_script $__tool_directory__/imagej2_skeletonize3d_jython_script.py + --output "$output" + --output_datatype $output.ext +]]> + </command> + <inputs> + <param format="bmp,eps,gif,jpg,pcx,pgm,png,psd,tiff" name="input" type="data" label="Select grayscale image"/> + <expand macro="black_background_param" /> + </inputs> + <outputs> + <data name="output" format_source="input" label="${tool.name} on ${on_string}"/> + </outputs> + <tests> + <test> + <param name="input" value="blobs.gif" /> + <param name="input_datatype" value="gif" /> + <param name="output_datatype" value="gif" /> + <output name="output" file="skeletonized_blobs.gif" compare="sim_size" /> + </test> + <test> + <param name="input" value="clown.jpg" /> + <param name="input_datatype" value="jpg" /> + <param name="output_datatype" value="jpg" /> + <output name="output" file="skeletonized_clown.jpg" compare="sim_size" /> + </test> + </tests> + <help> + +.. class:: warningmark + +@requires_binary_input@ + +**What it does** + +<![CDATA[ +Skeletonizes a 2D or 3D binary (8-bit) image. As Hanno Homman explains in his paper, binary thinning is +used for finding the centerlines (”skeleton”) of objects in the input image. The general idea is to erode +the object’s surface iteratively until only the skeleton remains. Erosion has to be performed symmetrically +in order to the guarantee medial position of the skeleton lines and such that the connectedness of the +object is preserved. Care has to be taken in order not to create holes or cavities in the object. + +There are two major approaches to image thinning: a) kernel-based filters and b) decision trees. Kernel-based +filters apply a structuring element to the image and can generally be extended to dimensions higher than 3D, +to find computationally efficient solutions for 4D and higher dimensions is subject of ongoing research. +Methods based on decision trees are thus far limited to 2D and 3D, but are potentially faster than morphological +filters, if they are well designed and can find more deletable points at each iteration. + +In 3D there are 67,108,864 possible binary combinations of object and background voxels in a 26-neighborhood, +which cannot be completely captured by kernel-based filters. Lee et al. have demonstrated in their work that +their solution, based on a decision tree, can handle all these cases correctly and find all deletable surface +points at each iteration. Thus their algorithm allows for a very fast iterative erosion process. +]]> + </help> + <citations> + <citation type="doi">10.1006/cgip.1994.1042</citation> + <citation type="doi">10.1038/nmeth.2102</citation> + </citations> +</tool>