[Rtk-users] Error Result by using FDK algorithm to Reconstruction 2D X- ray Scan projection images into 2D CT Slice image

何明哲 m10512067 at yuntech.org.tw
Thu Jan 12 08:40:48 CET 2023


HI Everyone ,

I have a question
that When I was refer to the official example "Firstcudareconstruction.cpp",
then I tried to  modify the code and reconstruction 2D x ray projection
image to 2D ct slice,
the code is worked but I got the wrong result too,
I don't understand what the problem I'm have ?
 it's possible that the setting of reconstruction output image size or
origin is wrong?

here is my code and result (I was tried to only reconstruction just a slice
NO.100 of the whole volume)
 --------------------------------------------------------------------------------------------
 using GeometryType = rtk::ThreeDCircularProjectionGeometry;
  GeometryType::Pointer geometry = GeometryType::New();
  unsigned int          numberOfProjections = 280;
  double                firstAngle = 0;
  double                angularArc = 280;
  unsigned int          sid = 510;
  unsigned int          sdd = 690;

  for (unsigned int noProj = 0; noProj < numberOfProjections; noProj++)
  {
    double angle = firstAngle + noProj * angularArc / numberOfProjections;
    geometry->AddProjection(sid, sdd, angle);
  }

  rtk::ThreeDCircularProjectionGeometryXMLFileWriter::Pointer xmlWriter;
  xmlWriter = rtk::ThreeDCircularProjectionGeometryXMLFileWriter::New();
  xmlWriter->SetFilename(".\\RTK_Geometry.xml");
  xmlWriter->SetObject(geometry);
  xmlWriter->WriteFile();

  using NameGeneratorType = itk::NumericSeriesFileNames;
  NameGeneratorType::Pointer nameGenerator = NameGeneratorType::New();

  nameGenerator->SetSeriesFormat(ProjectionInage +"\\%d.tif");
  nameGenerator->SetStartIndex(1);
  nameGenerator->SetEndIndex(280);
  nameGenerator->SetIncrementIndex(1);

  using IutputImageType = itk::CudaImage<float, 3>;
  using ReaderType = rtk::ProjectionsReader<IutputImageType>;
  ReaderType::Pointer reader = ReaderType::New();
  reader->SetFileNames(nameGenerator->GetFileNames());
  reader->Update();

  using ConstantImageSourceType = rtk::ConstantImageSource<OutputImageType>;
  ConstantImageSourceType::PointType   origin;
  ConstantImageSourceType::SpacingType spacing;
  ConstantImageSourceType::SizeType    sizeOutput;
  ConstantImageSourceType::Pointer     recoVolume =
ConstantImageSourceType::New();

  sizeOutput[0] = Imagewidth;
  sizeOutput[1] = Imageheigh;
  sizeOutput[2] = numofproj;
  spacing[0] = 0.25;
  spacing[1] = 0.25;
  spacing[2] = 0.25;
  origin[0] = Imagewidth*spacing[0]*0.5*-1;
  origin[1] = Imageheigh*spacing[0]*0.5*-1;
  origin[2] = spacing[2]*SliceN*-1;

  recoVolume->SetSize(sizeOutput);
  recoVolume->SetSpacing(spacing);
  recoVolume->SetOrigin(origin);
  recoVolume->SetConstant(0);

  using FDKGPUType = rtk::CudaFDKConeBeamReconstructionFilter;
  FDKGPUType::Pointer feldkamp = FDKGPUType::New();

  feldkamp->SetInput(0, recoVolume->GetOutput());
  feldkamp->SetInput(1, reader->GetOutput());
  feldkamp->SetGeometry(geometry);
  feldkamp->SetNumberOfThreads(7);
  feldkamp->Update();

  using WriterType = itk::ImageFileWriter<OutputImageType>;
  WriterType::Pointer writer = WriterType::New();
  writer->SetFileName("C:\\RTK.mhd");
  writer->SetInput(feldkamp->GetOutput());
  writer->Update();

[image: 20230112_100.PNG]

it should be look like this
[image: 20230109.PNG]

thanks for your reply

BR,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.creatis.insa-lyon.fr/pipermail/rtk-users/attachments/20230112/37202182/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20230112_100.PNG
Type: image/png
Size: 104500 bytes
Desc: not available
URL: <http://www.creatis.insa-lyon.fr/pipermail/rtk-users/attachments/20230112/37202182/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20230109.PNG
Type: image/png
Size: 221917 bytes
Desc: not available
URL: <http://www.creatis.insa-lyon.fr/pipermail/rtk-users/attachments/20230112/37202182/attachment-0003.png>


More information about the Rtk-users mailing list