[Insight-users] Rigid ICP

David Doria daviddoria+itk at gmail.com
Wed Jul 15 08:38:48 EDT 2009


On Tue, Jul 14, 2009 at 12:56 PM, Luis Ibanez<luis.ibanez at kitware.com> wrote:
>
> Hi David,
>
> The Rigid3DTransform class
> http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Rigid3DTransform.html
>
> is intended to be a base class for
>
>  Versor3DTransform
> QuaternionRigidTransform
> Euler3DTransform
>
> The Rigid3DTransform itself should not be used in a registration process.
> (think of it as an Abstract class).
>
>
> Please chose one of the specific transform above.
>
> You may want to start with  the
>
>  QuaternionRigidTransform or the
>  Euler3DTransform
>
>
>
> About your second question:
>
> Yes, Having a PointSetTransform filter sounds
> like a reasonable request.
>
> Actually it would be pretty easy for you to create
> this filter from the MeshTransform filter, and to
> share the resulting filter by posting it to the
> Insight Journal.
>
> Please let us know if you need any help identifying
> the necessary changes.
>
>
>
>    Regards,
>             Luis

Luis,

Rigid ICP
----------------------
Ah, the Euler3DTransform has the 6-DOF that I was looking for. I was
thrown off because in the ITK Software Guide the table summarizing the
Similarity3DTransform immediately follows the description of the
Euler3DTransform, and I didn't check the table caption!!

itkTransformPointSetFilter:
----------------------
I am not very familiar with this heavily templated style project, so
bear with me. I've got some learning to do!
I added Insight/Code/BasicFilters/itkTransformPointSetFilter.h/txx. I
also added Insight/Testing/Code/BasicFilters/itkTransformPointSetFilterTest.cxx.

I added a line to Insight/Testing/Code/BasicFilters/CMakeLists.txt:
ADD_TEST(itkTransformMeshFilterTest ${BASIC_FILTERS_TESTS2}
itkTransformMeshFilterTest)
ADD_TEST(itkTransformPointSetFilterTest ${BASIC_FILTERS_TESTS2}
itkTransformPointSetFilterTest)

I ran this:
[doriad at daviddoria Insight]$ ctest -R itkTransformPointSetFilterTest
Start processing tests
Test project /home/doriad/bin/Insight
622/1350 Testing itkTransformPointSetFilterTest***Failed

0% tests passed, 1 tests failed out of 1

The following tests FAILED:
        622 - itkTransformPointSetFilterTest (Failed)
Errors while running CTest


I then ran
ctest -R itkTransformPointSetFilterTest -V

and noticed a new output:
itkTransformPointSetFilterTest: No test registered with name
itkTransformPointSetFilterTest

There is a different error if, say, I spell the test wrong:
[doriad at daviddoria Insight]$ ctest -R itkTransformPointSetFilterTestbbbb
Start processing tests
Test project /home/doriad/bin/Insight
No tests were found!!!

And when I run a complete "make test", one of the lines is:
622/1350 Testing itkTransformPointSetFilterTest***Failed

So it seems to be a real test, so why would it say it is not registered?

Errors
------------------
I created my own project with the test as main() so I could actually
start looking at the problems (Is this how one would typically go
about adding a class like this?).  itkTransformMeshFilter is a
subclass of itkMeshToMeshFilter, and I don't see a
itkPointSetToPointSetFilter. Do I need to create that too? And even
farther, itkMeshToMeshFilter is a subclass of itkMeshSource, which has
functions/names like ProcessObject, etc. Are those necessary?

This line
  itkNewMacro(Self);
 produces errors like
itk::AffineTransform<float, 3u> >’ has no member named ‘UnRegister’

Clearly this a very simple function (a for loop that applies a
transform to each point), but I guess I'm having trouble getting it to
play nice with the instantiation macros and all of the upstream stuff.
Any suggestions?

I'm not sure it's worth looking at yet, but here are the work-in-progress files:
http://www.rpi.edu/~doriad/itkTransformPointSetFilter/
I commented everything after the first line that produces an error in
the test file.

Submission process
----------------------
Is the Insight Journal the right place for this? There isn't really
anything to write a tech report about! Is it not standard practice to
simply add the files to the repository?

Thanks,

David


More information about the Insight-users mailing list