[Insight-users] question about one of Insight-Jorunal entries

Tom Vercauteren tom.vercauteren at gmail.com
Mon Sep 14 08:11:18 EDT 2009


Hi Kaveh,

First of all, thank you for your interest in my IJ submission.

> I have a question about the following entry to Insight-Journal and I would
> be thankful if you answer:
>
> An ITK Implementation of the Symmetric Log-Domain Diffeomorphic Demons
> Algorithm
> http://www.insight-journal.org/browse/publication/644
>
>
> I have questions about some classes that I cannot find enough information
> from Journal and documentation:
>
> * What is difference between these two classes:
> "SymmetricLogDomainDemonRegistrationFilter" and
> "LogDomainDemonRegistrationFilter"? Please correct me if I am wrong: one if
> them is inverse consistent namely \phi = \exp(v) and \phi^{-1} = \exp(-v)
> and another one is not? Is it right? If that is the case then

SymmetricLogDomainDemonRegistrationFilter is indeed the inverse
consistent version of LogDomainDemonRegistrationFilter.

In both cases the deformation field is given by the exponential of a
velocity field:
   \phi_{A-B} = \exp(v_{A-B})
(where A and B are the images to register and A-B means "from A to B")

Even in the non-inverse consistent version you easily have access to
the inverse transformation
    \phi_{A-B}^{-1} = \exp(-v_{A-B})

But only in the inverse consistent version (a.k.a symmetric) you do have
    \phi_{B-A} = \phi_{A-B}^{-1}


> SymmetricLogDomainDemonRegistrationFilter is inverse consistent but you did
> not include "itkVelocityFieldBCHCompositionFilter.h", don't you need it
> there? From documentation, I didn't understand the difference.

VelocityFieldBCHCompositionFilter is also used in the
SymmetricLogDomainDemonRegistrationFilter. If the
itkVelocityFieldBCHCompositionFilter.h header is not included
directly, I guess that it is included indirectly by another header
(maybe itkLogDomainDeformableRegistrationFilter.h).


> * There is a class called "NCCRegistrationFunction2" what is this class for?
> It seems that you did not instantiate it anywhere, right?

It's a small patch for the NCCRegistrationFunction currently in ITK.
It is a cleanup and adds the possibiity to subtract the mean value has
in the corresponding image metric.

The log domain demons code does not use it right now. The goal was to
try and work with normalized cross-correlation (instead of the mean
squared error) within the demons but I haven't had enough time to
really test it.


> * If I want to add extra input to the registration method, here is the class
> I need to change, please correct me if I am wrong:
> - itkESMDemonsRegistrationFunction
> -itkLogDomainDemonsRegistrationFilter
> -itkSymmetricLogDomainDemonsRegistrationFilter
> -itkLogDomainDeformableRegistrationFilter
> -itkMultiResolutionLogDomainDeformableRegistration
>
> Is there anything else I need to change?

Do you mean something like adding a mask for example? If that's the
case, you might be interested in checking out
http://hdl.handle.net/10380/3105


> * In the Journal, it said that CMake needs to know (optionally) the path to
> MATLAB. I was wondering why is that the case, does your program interface
> with MATLAB? Where that code is?

MATLAB may currently be used to improve the test coverage. Right now
it is only used to check that the vnl implementation of the matrix
logarithm provides similar results to MATLAB. The CMake code is
however more general add allows (at least on linux) to interface
matlab and c++ in both ways (mex file or matlab engine).


> Sorry for asking several questions,

Hop this helps,
Tom

>
> Thanks in advance,
> Regards,
> Kaveh
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>


More information about the Insight-users mailing list