[Insight-developers] itk submission

Samson Timoner samson at bwh . harvard . edu
Wed, 24 Dec 2003 18:43:30 -0500


This is a multi-part message in MIME format.
--++----------20031224184218-071080041----------++
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


This is the submission of itkCompareHistogramImageToImageMetric
                      and itkKLCompareHistogramImageToImageMetric

I submitted an experimental build as requested (horus0.ai.mit.edu)

The files are attached. Though, for those of you who do not like
attachments, the files are also sitting in:

 www.ai.mit.edu/people/samson/upload/itk

For Code/Algorithms, I have the following files:

  itkKLCompareHistogramImagetoImageMetric.h
  itkKLCompareHistogramImagetoImageMetric.txx
  itkCompareHistogramImagetoImageMetric.h
  itkCompareHistogramImagetoImageMetric.txx

For Testing/Code/Algorithms, I have:
  itkKLCompareHistogramImageToImageMetricTest.cxx
  itkKLCompareHistogramImageToImageMetric.txx

In the directory Testing/Code/Algorithms, one needs to modify

 CMakeList.txt
 itkAlgorithmsHeaderTest.cxx
 itkAlgorithmsTests2.cxx

which I have also included.

Comments:
  1) The class should probably be called
     itkKullbackLieblerCompareHistogramImagetoImageMetric,
     but as we are comparing Histograms, I think that itkKLCompare is
     sufficient. Feel free to tell me to change it, or just do a search
     and replace on your own.
  2) In Testing, the test for CompareHistogramImageToImageMetric
     effectively does almost nothing that is not contained in the test for
     KLCompareHistogramImageToImageMetric. I basically just copied the
     test from HistogramImageToImageMetricTest, which similarly just
     has a simple test for a sub-class.

 I'm sure I can say more, but I think this is sufficient for now.
 Happy Holidays everyone!

-- Samson
  
--++----------20031224184218-071080041----------++
Content-Type: application/x-gunzip; name="itk-submit.tar.gz"
Content-Transfer-Encoding: base64

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
--++----------20031224184218-071080041----------++--