Friday, August 11, 2006

Graphical Transformation Of Points

Today I completed the implementation of the graphical transformation of the points that represent the ellipse in the Registration process I am currently using. The ellipse is a simple itkSpatialObject that can be used to represent the outline of the brain. In my previous Registration, the ellipse fit the brain exactly in size but was placed a few pixels away from the correct location. Thus the process of the Registration only focused on the translation of the points. Now, I have added functionality by using the itkSimilarity2DTransform which contains scaling, rotation, and translation. Previously I had loaded all the points from the ellipse into a vtkPolyData object and used a vtkActor and vtkPolyDataMapper to display the ellipse. To represent the effects of translation I created a function designed to move the vtkActor with respect to the different locations outputted from the Registration process. This was done by simply changing the position settings on the desired actor. To take into account all the aspects of the itkSimilarity2DTransform, I needed to transform the set of points to new locations in space. This was accomplished by instantiating a new transform object with the parameters from the current iteration. Using that, I transformed each point before I placed it into the vtkPolyData object and then reloaded the object into its respective actor. These additional computations did not noticeably reduce the speed of the Registration process. With the transform implemented I no longer needed to access the coordinates of the translation in the display function, since the positioning of the object was already taken care of within the transform.

The results of the Registration using the itkSimilarity2DTransform varied. At times, using initial conditions where the translation was displaced twenty-five pixels with a rotation of fifteen degrees, the end of the registration would find itself within five pixels of the correct transformation. Other times the Registration would end abruptly having made not significant strides into the correct direction. I tried blurring the image using itkBinomialBlurImageFilter, which provided some improvement. If scaling is allowed to vary greatly, the registration process basically stands still and makes no progress. I will probably try to register each aspect of the transformation in succession and use different degrees of blurring.

0 Comments:

Post a Comment

<< Home