[Insight-users] Istropic resampled CT image got fipped at y direction, and out of range
Luis Ibanez
luis.ibanez at kitware.com
Fri Feb 20 15:43:17 EST 2009
Hi Baoyun,
Thanks for letting us know that this fixed the problem.
We have now added the SetOutputDirection() call to all
the other resampling examples in the directory:
Insight/Examples/Filtering
Regards,
Luis
---------------------
Baoyun Li wrote:
> Luis:
>
> Thank you so much. Now the output is correct.
>
> Best Regards
>
> Baoyun
>
> ------------------------------------------------------------------------
> *From:* Luis Ibanez <luis.ibanez at kitware.com>
> *To:* Baoyun Li <baoyun_li123 at yahoo.com>
> *Cc:* insight-users at itk.org
> *Sent:* Friday, February 20, 2009 11:41:59 AM
> *Subject:* Re: Istropic resampled CT image got fipped at y direction,
> and out of range
>
> Hi Baoyun,
>
>
> Congratulations !
>
> You just found a bug in the ITK Example.
>
>
>
> The Example is missing to call the method
>
> SetOutputDirection()
>
> a fix has been committed to CVS
> http://www.itk.org/cgi-bin/viewcvs.cgi/Examples/Filtering/ResampleVolumesToBeIsotropic.cxx?root=Insight&r1=1.21&r2=1.22&sortby=date
> <http://www.itk.org/cgi-bin/viewcvs.cgi/Examples/Filtering/ResampleVolumesToBeIsotropic.cxx?root=Insight&r1=1.21&r2=1.22&sortby=date>
>
> Simply try adding the line:
>
> resampler->SetOutputDirection( inputImage->GetDirection() );
>
>
> just after:
>
> resampler->SetOutputOrigin( inputImage->GetOrigin() );
>
>
> Without this line, the filter is setting the direction of the
> output image to be an identity matrix (direction cosines),
> while, most likely, your in put image has a different type
> of direction.
>
> You can always verify this by adding a print out:
>
>
> std::cout << inputImage->GetDirection() << std::endl
>
>
> --
>
>
> Please let us know if you still see any problem,
>
>
> Thanks
>
>
> Luis
>
>
> -------------------
> Baoyun Li wrote:
> > Dear All:
> > This is regarding to yesterday's email, resampled image got out of
> range values for all voxel.
> > I am trying to resice the CT data to Isotropic, and the program I am
> using is ResampleVolumesToBeIsotropic.cxx for the ITK filter example.
> > Now I remove this :
> > resampler->SetOutputOrigin( inputImage->GetOrigin() );
> > and reader: origin1=inputImage->GetOrigin(),
> > the value for origin1 are all [0 0 0];
> > 1 if we set origin2=[0 0 0] and resampler->SetOutputOrigin(origin2),
> > I got all zeros value on the output image.
> > 2 if I set origin2=[0 -300 0], we saw most part of the CT image, but
> the image is fippled at top down direction from MRICro.
> > my input and out put are all hdr file, I tried nii data and have the
> same problem
> > Can somebody tell me how to solve the problem?
> > Baoyun
> >
> > ------------------------------------------------------------------------
> > *From:* Baoyun Li <baoyun_li123 at yahoo.com
> <mailto:baoyun_li123 at yahoo.com>>
> > *To:* Luis Ibanez <luis.ibanez at kitware.com
> <mailto:luis.ibanez at kitware.com>>
> > *Cc:* insight-users at itk.org <mailto:insight-users at itk.org>
> > *Sent:* Thursday, February 19, 2009 4:53:30 PM
> > *Subject:* error when resampling the CT data to Isotropic
> >
> >
> > Dear All:
> > I am trying to resice the CT data to Isotropic, and the program I am
> using is ResampleVolumesToBeIsotropic.cxx for the ITK filter example.
> > My input data is called SE1.hdr
> > the space resolution is 0.7*0.7*2.5.
> > After I run the program, I got the output.hdr. The number of voxels
> and the spacing of the output are correct after I check the result at
> MRICro. But all the voxel has the default outside value. Seems after the
> indentity transform, all the voxels are out of range.
> > Also I output the SmootherY results, it is ok.
> > Can any body let me know what happend? How to check the value of
> transform.
> > /////////////////////////////changes I made on the code
> > typedef short InputPixelType;
> > intensityWindowing->SetOutputMinimum( 0.0 );
> > intensityWindowing->SetOutputMaximum( 1200.0 ); // floats but in the
> range of chars.
> > typedef short OutputPixelType;
> > and some writers to record the interval output.
> > ////////////////////////
> > I also checked the results using NII as input and output, the
> resliced image contains all background value. I doubt the problem
> happend at the
> > typedef itk::IdentityTransform< double, Dimension > TransformType;
> > TransformType::Pointer transform = TransformType::New();
> > transform->SetIdentity();
> > resampler->SetTransform( transform );
> > Can somebody help me to figure out this problem??
> > Thanks
> > Baoyun
> >
> >
>
More information about the Insight-users
mailing list