[ITK-users] IterativeClosestPoint2 example: how to get better results

Matt McCormick matt.mccormick at kitware.com
Sat Aug 15 14:24:01 EDT 2015


Hi Fabio,

That is great to hear!


Please review this patch:

  http://review.source.kitware.com/#/c/20082/

This adds more status information that can lend insight into the
registration convergence.


Thanks,
Matt

On Fri, Aug 14, 2015 at 1:44 AM, D'Isidoro  Fabio <fisidoro at ethz.ch> wrote:
> Hello Matt,
>
> I went through the source code of 3DEuler transform in itk, and I realized that the default Euler sequence ZXY. If I generate my data according to this sequence I get perfect results, as it should be!
>
>
> -----Original Message-----
> From: Matt McCormick [mailto:matt.mccormick at kitware.com]
> Sent: Freitag, 14. August 2015 00:09
> To: D'Isidoro Fabio
> Cc: insight-users at itk.org
> Subject: Re: [ITK-users] IterativeClosestPoint2 example: how to get better results
>
> Hello,
>
> On Thu, Aug 13, 2015 at 4:06 AM, D'Isidoro  Fabio <fisidoro at ethz.ch> wrote:
>> I am trying to use the IterativeClosestPoint2 example on the fixed and
>> moving point sets in attachment (called “src” and “dest” point sets).
>>
>>
>>
>> The ground truth is “properly ordered dest = Transform(src)”, where:
>>
>>
>>
>> Euler angles:  (0.349065850398866, 0.349065850398866,
>> 0.349065850398866)
>>
>> Translations: (4.1335200571234, 5.90820985238168, 7.04748773837622)
>>
>>
>>
>> (the dest_point set in attachment is randomly reshuffled)
>>
>>
>>
>>>>> If I use srx = fixed, dest = moving, the registration results is:
>>
>>
>>
>> Euler angles:  (-0.327201, -0.36953, -0.47291)
>>
>> Translations: (-6.28471, -2.64212, -1.50835)
>>
>>
>>
>>>>> If I use dest = fixed, src = moving, the registration results is:
>>
>>
>>
>> Euler angles:  (0.44595, 0.20655, 0.36423)
>>
>> Translations: (6.28471, 2.64212, 1.50835)
>>
>>
>>
>>
>>
>>
>>
>> Question 1):
>>
>>
>>
>> Given that “properly ordered dest = Transform(src)”, according to the
>> guide src should be the fixed point set. Am I wrong?
>>
>
> This is a bit confusing because it is different from transforms with images, but the src should be the moving point set.  See:
>
>   http://itk.org/gitweb?p=ITK.git;a=blob;f=Modules/Registration/Common/include/itkEuclideanDistancePointMetric.hxx;h=af1b04e91ed9126777134db3dfca6ef05810fc60;hb=HEAD#l87
>
>
>> Question 2):
>>
>>
>>
>> I am not happy with the results, given that there is no additional
>> noise (the underlined values refer to error angles of up to 8 degrees
>> and 3 mm errors). I am surprised because there is no additional noise
>> to the data, so I would expect an accurate registration. Are my
>> results normal? How could I improve the results? Should I change the optimizer, or the transform?
>
> Could the code be shared that generated the inputs?
>
> Thanks,
> Matt


More information about the Insight-users mailing list