diff imagej2_skeletonize3d.xml @ 0:8b787f641b9c draft

planemo upload commit 98c34e070343a117019ffd25a3af117808159bf5-dirty
author iuc
date Tue, 04 Aug 2015 13:21:32 -0400
parents
children 269923244cc8
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagej2_skeletonize3d.xml	Tue Aug 04 13:21:32 2015 -0400
@@ -0,0 +1,85 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<tool id="imagej2_skeletonize3d" name="Skeletonize images" version="1.0.0">
+    <description>with ImageJ2</description>
+    <macros>
+        <import>imagej2_macros.xml</import>
+    </macros>
+    <expand macro="fiji_20141125_requirements" />
+    <command>
+<![CDATA[
+    python $__tool_directory__/imagej2_skeletonize3d.py
+    --input "$input"
+    --input_datatype $input.ext
+    @max_heap_size_args@
+    --jython_script $__tool_directory__/jython_script.py
+    --output "$output"
+    --output_datatype $output_datatype
+]]>
+    </command>
+    <inputs>
+        <param format="bmp,eps,gif,jpg,pcx,pgm,png,psd,tiff" name="input" type="data" label="Select grayscale image"/>
+        <param name="output_datatype" type="select" label="Save as format">
+            <expand macro="image_datatypes" />
+        </param>
+        <expand macro="max_heap_size_type_conditional" />
+    </inputs>
+    <outputs>
+        <data name="output" format_source="input" label="${tool.name} on ${on_string}">
+            <actions>
+                <action type="format">
+                    <option type="from_param" name="output_datatype" />
+                 </action>
+           </actions>
+       </data>
+    </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
+
+The underlying AnalyzeSkeleton Fiji plugin works on binary images, so other image types will
+automatically be converted to binary before they are analyzed.  This step is performed using the
+ImageJ2 **Make Binary** command with the following settings: **Iterations:** 1, **Count:** 1,
+**Black background:** No, **Pad edges when eroding:** No.  If these settings are not appropriate,
+first manually convert the image to binary using the **Convert to binary (black and white) with
+ImageJ2** tool, which allows you to change them.
+
+**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>