We’re currently engaged in CBCT reconstruction and have successfully developed a Python-based code for the task, which functions without issue. However, encountering an error during the conversion process to C++, specifically at the stage of FDK reconstruction filter implementation, has prompted our inquiry. The error message reads as follows:
itk::ExceptionObject (000000EBA52FDC68)
Location: “unknown”
File: C:\ITK\src\Modules\Filtering\FFT\include\itkRealToHalfHermitianForwardFFTImageFilter.h
Line: 85
Description: ITK ERROR: Object factory failed to instantiate class itk::RealToHalfHermitianForwardFFTImageFilter<class itk::Image<float,3>,class itk::Image<class std::complex,3> >
Our FDK implementation in C++ is as follows:
using FDKGPUType = rtk::CudaFDKConeBeamReconstructionFilter;
// Creating the FDK reconstruction filter
FDKGPUType::Pointer feldkamp = FDKGPUType::New();
// Setting input images for the FDK reconstruction filter
feldkamp->SetInput(0, constantImageSource2->GetOutput());
feldkamp->SetInput(1, ParkerFilter->GetOutput()); // This is the projection stack from rtkProjectionsReader
// Setting geometry for the FDK reconstruction filter
feldkamp->SetGeometry(geometry);
// Setting ramp filter parameters
feldkamp->GetRampFilter()->SetTruncationCorrection(0.0);
feldkamp->GetRampFilter()->SetHannCutFrequency(0.0);
// Executing the reconstruction filter
try {
feldkamp->Update();
}
We’re employing ITK version 5.3 for this implementation. Any insights into the cause of this error would be greatly appreciated.