[Insight-users] (no subject)

valli gummadi valli gummadi" <valli_gummadi@rediffmail.com
19 Nov 2002 12:39:22 -0000


Hi Lydia,

Answers for ur questions are listed below.

1.My fixed and moving volumes are of type signed short.
2.Fixed Image is not a single image.It is a volume of 120
images.It is a MR volume which is of type signed short.
Moving Image is generated from fixed image by rotating 1.75
degrees.I used vtk for rotation.
Regarding the spacing i didn't set any spacing explicitly for
moving image.

Some doubts:
Mr.Luis listed the expected matrix output after registration for
the moving volume rotated 1.75 degrees.
When i give volume of 120 images i am getting the expected
matrix(not exactly same.with minute rotations in other axes) at
much more iterations than the volume of 6 or 7 images.
To get the expected matrix every time i have to go to code and
change the iterations  and build the code for change in the
volume
size.
My doubt is "Is it neccessary change iterations based on the
volume size?"
I think registration should work same whether it small size or
large size.am i correct or not?

I have very urgent requirement for the registration output.
Please help me in getting the output.

Actually I have the whole image data in a structure.I used the
following code to convert that structure to itk::Image type
image.

//code snippet
typename typedef itk::Image<T, ImageDimension > ImageType;
typename typedef ImageType::Pointer ImagePointer;

ImagePointer GetImage(Volume* pVol)
{
         PixelType* Buffer = (PixelType*)pVol->Mem;
     ImagePointer image = ImageType::New();
     int sizear[3] = {pVol->width, pVol->height, pVol->depth};
     ImageType::SizeType size ;
     double spacing[3] = {pVol->voxelWidth, pVol->voxelHeight,
1.6000};  //pVol is the volume structure which holds the Image
header information.

     for (int i=0;i<ImageDimension;i++)
         size[i] = sizear[i] ;

         ImageType::IndexType index ;
         index.Fill(0);

         ImageType::RegionType region;

         region.SetSize(size);
         region.SetIndex(index);

         image ->SetLargestPossibleRegion( region );
         image ->SetBufferedRegion( region );
         image ->SetRequestedRegion( region );
         image ->SetSpacing(spacing);
         image ->Allocate();

         itk::ImageRegionIteratorWithIndex <ImageType>(image ,
region);
         int k=0;
         while( !it.IsAtEnd()) {
             it.Set(Buffer[k]);
             k++;
             ++it;
             }
         return image;


//code complete
Please tell me where i am missing.If u are intrested,I can send
u
my fixed and moving volumes.

Thanking U in advance,
Regards,
Valli.