[Rtk-users] Back Projection
Simon Rit
simon.rit at creatis.insa-lyon.fr
Fri Aug 12 08:46:17 UTC 2022
Hi,
It should work. UpdateOutputInformation is not required (it's done by
Update already). Does the outputImage passed as input to the backprojection
have the same information as reader->GetOutput()?
Simon
On Fri, Aug 12, 2022 at 8:57 AM Adarsh S Sunil <adarshto3 at gmail.com> wrote:
>
> Hi all,
>
> I'm a beginner in rtk. I want to use the forward and backward
> projection in CT images. For that I defined the RTK geometry object and
> seriesIdContainer.
>
> Then I read CT data and assign it to a reader and set it as inputImage.
>
>
> * while (seriesItr != seriesUID.end())*
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> * { seriesIdentifier = seriesItr->c_str(); seriesItr++;
> std::cout << "\nReading: "; std::cout << seriesIdentifier << std::endl;
> using FileNamesContainer = std::vector<std::string>;
> FileNamesContainer fileNames =
> nameGenerator->GetFileNames(seriesIdentifier); using ImageIOType =
> itk::GDCMImageIO; auto dicomIO = ImageIOType::New();
> reader->SetImageIO(dicomIO); reader->SetFileNames(fileNames);
> reader->ForceOrthogonalDirectionOff(); // properly read CTs with gantry
> tilt TRY_AND_EXIT_ON_ITK_EXCEPTION(reader->Update()) }*
>
>
>
> * using RegionType = itk::ImageRegion<3>; ImageType::Pointer
> inputImage = reader->GetOutput(); RegionType inputRegion =
> inputImage->GetLargestPossibleRegion(); ImageType::Pointer outputImage =
> ImageType::New();*
>
> Then I created Imageregion and imageFilter for outputImage.
> Then I set the regions, spacing, origin etc.
>
> Then I get the Forward Projection like the following:
>
>
>
>
>
>
> * rtk::ForwardProjectionImageFilter<ImageType, ImageType>::Pointer
> ForwardProj = rtk::CudaForwardProjectionImageFilter<ImageType,
> ImageType>::New();
> dynamic_cast<rtk::CudaForwardProjectionImageFilter<ImageType, ImageType>
> *>(ForwardProj.GetPointer()) ->SetStepSize( 1 ); ForwardProj->SetInput( 0,
> outputImage ); ForwardProj->SetInput( 1, changeFilter->GetOutput());
> ForwardProj->SetGeometry( geometry ); ForwardProj->Update();*
>
> Then I wrote the ForwardProj to an mha file.
>
> Then I put the output from Forward Projection as input of Back Projection.
> Now I am trying to get the back projection like the following:
>
>
>
>
>
>
>
>
>
>
>
>
> * using ReaderType1 = rtk::ProjectionsReader<ImageType>;
> ReaderType1::Pointer reader1 = ReaderType1::New(); reader1->SetFileNames(
> fileNames ); reader1->Update(); using BackFilter =
> rtk::CudaFDKConeBeamReconstructionFilter; auto BackProjFilter =
> BackFilter::New(); // FDK reconstruction BackProjFilter->SetInput( 0,
> outputImage ); BackProjFilter->SetInput( 1, reader1->GetOutput() );
> BackProjFilter->SetGeometry( geometry ); BackProjFilter->Update();
> BackProjFilter->UpdateOutputInformation();*
>
> But I'm not getting the back projection. Are there any additional options
> I have to set??
> Is there anything I have missed??
>
> Thanks & Regards
> Adarsh S S
> _______________________________________________
> Rtk-users mailing list
> Rtk-users at public.kitware.com
> https://public.kitware.com/cgi-bin/mailman/listinfo/rtk-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20220812/5ee867b2/attachment.htm>
More information about the Rtk-users
mailing list