<?xml version="1.0" encoding="utf-8"?>
<executable>
  <category>Registration</category>
  <title>Diffeomorphic Demons Algorithm</title>
  <index>6</index>
  <description>Algorithm developed by Tom Vercauteren </description>
  <version> 1.0</version>
  <documentation-url></documentation-url>
  <license></license>
  <contributor> Tom Vercauteren, Ender Konukoglu, Kilian Pohl </contributor>
  <acknowledgements>INRIA rocks</acknowledgements>
 <parameters>
    <label>Input/Output</label>
    <description>Input/output parameters</description>
    <image> 
      <name>demonsTargetVolume</name>
      <label>Fixed Image</label>
      <channel>input</channel>
      <flag>f</flag>
      <longflag>fixed_image</longflag>
      <description>Target Volume Number</description> 
      <description>Target volume</description>
    </image>
    <image>
      <name>demonsMovingVolume</name>
      <flag>m</flag>
      <label>Moving Image</label>
      <longflag>moving_image</longflag>
      <channel>input</channel>
      <description>Target volume</description>
    </image>
    <image type="vector" hidden="true">
      <name>demonsDeformationVolume</name>
      <flag>O</flag>
      <longflag>output_field</longflag>
      <label>Deformation Field</label>
      <channel>output</channel>
      <description>Deformation Field</description>
    </image>
    <image>
      <name>demonsResampledVolume</name>
      <label>Output Volume</label>
      <flag>o</flag>
      <longflag>output_image</longflag>
      <channel>output</channel>
      <description>Resampled Volume - NOTE: output volume will be oriented as axial and may not match input orientations.</description>
    </image>
</parameters>
<parameters>
   <label>Registration Parameters </label>
   <description>Parameters of the Diffeomorphic Algorithm </description>
   <integer>
     <name>levels</name>
     <flag>n</flag>
     <longflag>num_levels</longflag>
     <description>Number of Hierarchical Levels</description> 
     <label>Levels</label>
     <default>3</default>
   </integer>  
   <integer-vector>
     <name>iteration</name>
     <flag>i</flag>
     <longflag>num_iterations</longflag>
     <description>Number of Iterations per Level</description> 
     <label>Iterations</label>
     <default>20,20,20</default>
   </integer-vector>  
   <double>
     <name>smoothing</name>
     <flag>s</flag>
     <longflag>def_field_sigma</longflag>
     <description>Standard deviation of the smoothing (Sigma)</description> 
     <label>Smoothing</label>
     <default>3.0</default>
   </double>  
   <double>
     <name>smoothingUp</name>
     <flag>g</flag>
     <longflag>up_field_sigma</longflag>
     <description>Smoothing sigma for the update field at each iteration</description>
     <label>Update field smoothing</label>
     <default>0.0</default>
   </double>
   <double>
     <name>maxStepLength</name>
     <flag>l</flag>
     <longflag>max_step_length</longflag>
     <description>Maximum length of an update vector (0: no restriction)</description>
     <label>Max Step Length</label>
     <default>2.0</default>
     </double>
   <boolean>
     <name>normalization</name>
     <flag>e</flag>
     <longflag>use_histogram_matching</longflag>
     <description>Intensity Normalization</description> 
     <label>Intensity Normalization</label>
     <default>false</default>
   </boolean>  
   <boolean>
     <name>turnOffDiffeomorph</name>
     <flag>a</flag>
     <longflag>use_vanilla_dem</longflag>
     <description>Run vanilla demons algorithm</description> 
     <label>Turn off Diffeomorphism</label>
     <default>false</default>
   </boolean>  
   <integer-enumeration>
     <name>gradientType</name>
     <flag>t</flag>
     <longflag>gradient_type</longflag>
     <description>Type of gradient used for computing the demons force (0 is symmetrized, 1 is fixed image, 2 is moving image)</description>
     <default>0</default>
     <label>Gradient Type</label>
     <element>0</element>
     <element>1</element>
     <element>2</element>
   </integer-enumeration>
   <boolean>
     <name>verbose</name>
     <flag>v</flag>
     <longflag>verbose</longflag>
     <description></description> 
     <label>Verbose</label>
     <default>false</default>
   </boolean>  
</parameters>
</executable>
