[Insight-users] Some Questions About the virtual domain in the ImageToimageMetricv4

brian avants stnava at gmail.com
Thu Jan 24 14:29:33 EST 2013


hi fred

that bit of code is , far as i know , the same as in itkv3 - however,
not sure if the sampling points are computed in the same way.   is
worth checking.

i dont think the virtual domain image needs to be used in any special
way for your case.

anyway, if you look at the code a bit , i am sure you can figure out
how to get it working.   i only have guesses.

brian




On Thu, Jan 24, 2013 at 3:32 AM, Champ Frédéric <champ at unistra.fr> wrote:
> Hi Brian,
>
> Thanks for your reponse.
>
> I asked this question about the virtual domin because I'm trying to
> registrer a 3D volume  M, on a slice of an other 3D volume F, e.g a 3D image
> with size[2]=1
> I use the Mattes Mutual Information because it's the one that gives the most
> accurate results in my case.
> But, it always return an error message because I never fulfill this
> condition in itkMattesMutualInformationImageToImageMetricv4.hxx :
>
>   if( this->GetNumberOfValidPoints() < numberOfPoints / 16 )
>     {
>     itkExceptionMacro("Too many samples map outside moving image buffer.
> There are only "
>                       << this->m_NumberOfValidPoints << " valid points out
> of "
>                       << numberOfPoints << " total points. The images do not
> sufficiently "
>                       "overlap. They need to be initialized to have more
> overlap before this "
>                       "metric will work. For instance, you can align the
> image centers by translation."
>                       << std::endl);
>     }
>
> M size is 42*42*21 = 37044 points and 37044 / 16 =  2 315,25 but F size is
> only 42*42*1 = 1764 points.
>
> With the old registration framework this registration was possible but not
> thread safe...
>
> Is there another way to perform a slice by slice registration with the
> framework v4 ?
>
> Thanks a lot,
>
> Fred
>
>
> Le 22/01/2013 18:33, brian avants a écrit :
>
> briefly, the virtual domain evaluates an image difference metric as:
>
>     J - fixed image
>
>     K - moving image
>
>     x - a point in the virtual domain
>
>     \|   J (  T_fixed( x )  )   -   K ( T_moving(x) ) \|^2
>
>  By default T_fixed( x ) is the identity and T_moving is what you
> optimize.  Other metrics are implemented in the same way.
>
> This lets the user :
>
>  1 ) control the resolution @ which registration is performed ... e.g.
> to implement multi-resolution approaches by setting the virtual domain
> to be smaller than the domain of J.
>
>  2 )  allows the fixed image to have a transform as well.   for
> instance, when the image registration is performed in an unbiased
> space.
>
> This also lets one minimize the number of interpolation / downsampling
> operations.
>
> brian
>
>
>
>
> On Tue, Jan 22, 2013 at 5:02 AM, Champ Frédéric <champ at unistra.fr> wrote:
>
>
> Hi,
>
> For a 3D registrations with the framework v4:
>
> - What exactly does the virtual domain ?
> - Does it necessary to specify it if the moving and fixed regions are
> different ?
>
> Fred
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> 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