<?xml version="1.0" encoding="utf-8"?>
<executable>
  <category>registration</category>
  <title>Linear registration</title>
  <description>Registers two images together using a rigid transform and MI</description>
  <version>1.0</version>
  <documentationurl></documentationurl>
  <license></license>
  <contributor>Daniel Blezek</contributor>

  <parameters>
    <label>Registration Parameters</label>
    <description>Parameters used for registration</description>
    <integer>
      <name>HistogramBins</name>
      <flag>-b</flag>
      <longflag>--histogrambins</longflag>
      <description>Number of histogram bins to use for Mattes Mutual Information</description>
      <label>Histogram Bins</label>
      <default>30</default>
      <constraints>
        <minimum>1</minimum>
        <maximum>500</maximum>
        <step>5</step>
      </constraints>
    </integer>

    <integer>
      <name>SpatialSamples</name>
      <flag>-s</flag>
      <longflag>--spatialsamples</longflag>
      <description>Number of spatial samples to use in estimating Mattes Mutual Information</description>
      <label>Spatial Samples</label>
      <default>10000</default>
      <constraints>
        <minimum>1000</minimum>
        <maximum>50000</maximum>
        <step>1000</step>
      </constraints>
    </integer>

    <integer-vector>
      <name>Iterations</name>
      <flag>-i</flag>
      <longflag>--iterations</longflag>
      <description>Comma separated list of iterations must have the same number of elements as learning rate</description>
      <label>Iterations</label>
      <default>1000,1000,500,200</default>
    </integer-vector>

    <double-vector>
      <name>LearningRate</name>
      <flag>-l</flag>
      <longflag>--learningrate</longflag>
      <description>Comma separated list of learning rates must have the same number of elements as iterations</description>
      <label>Learning Rates</label>
      <default>0.01,0.005,0.0005,0.0002</default>
    </double-vector>
    
    <double>
      <name>TranslationScale</name>
      <longflag>--translationscale</longflag>
      <flag>-t</flag>
      <description>Relative scale of translations to rotations, i.e. a value of 100 means 10mm = 1 degree</description>
      <label>Translation scaling</label>
      <default>100.0</default>
      <constraints>
        <minimum>10.0</minimum>
        <maximum>500.0</maximum>
        <step>50.0</step>
      </constraints>
    </double>
  </parameters>

  <parameters>
    <label>IO</label>
    <description>Input/output parameters</description>
    <image>
      <name>fixedImageFileName</name>
      <label>Fixed Image</label>
      <channel>input</channel>
      <index>0</index>
      <description>Fixed image to register to</description>
    </image>
    <image>
      <name>movingImageFileName</name>
      <label>Moving Image</label>
      <channel>input</channel>
      <index>1</index>
      <description>Moving image</description>
    </image>
    <image>
      <name>resampledImageFileName</name>
      <label>Output Volume</label>
      <channel>output</channel>
      <index>2</index>
      <description>Resampled Moving Image</description>
    </image>
  </parameters>

</executable>
