<div dir="ltr">Hi all,<div><br>  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:<br><br>itk::ExceptionObject (000000EBA52FDC68)<br>Location: "unknown"<br>File: C:\ITK\src\Modules\Filtering\FFT\include\itkRealToHalfHermitianForwardFFTImageFilter.h<br>Line: 85<br>Description: ITK ERROR: Object factory failed to instantiate class itk::RealToHalfHermitianForwardFFTImageFilter<class itk::Image<float,3>,class itk::Image<class std::complex<float>,3> ><br><br>  Our FDK implementation in C++ is as follows:<br><br>using FDKGPUType = rtk::CudaFDKConeBeamReconstructionFilter;<br><br>// Creating the FDK reconstruction filter<br>FDKGPUType::Pointer feldkamp = FDKGPUType::New();<br><br>// Setting input images for the FDK reconstruction filter<br>feldkamp->SetInput(0, constantImageSource2->GetOutput());<br>feldkamp->SetInput(1, ParkerFilter->GetOutput()); // This is the projection stack from rtkProjectionsReader<br><br>// Setting geometry for the FDK reconstruction filter<br>feldkamp->SetGeometry(geometry);<br><br>// Setting ramp filter parameters<br>feldkamp->GetRampFilter()->SetTruncationCorrection(0.0);<br>feldkamp->GetRampFilter()->SetHannCutFrequency(0.0);<br><br>// Executing the reconstruction filter<br>try {<br>    feldkamp->Update();<br>}<br><br><div class="gmail-flex-shrink-0 gmail-flex gmail-flex-col gmail-relative gmail-items-end"><div><div class="gmail-pt-0.5 gmail-juice:pt-0"><div class="gmail-gizmo-bot-avatar gmail-flex gmail-h-6 gmail-w-6 gmail-items-center gmail-justify-center gmail-overflow-hidden gmail-rounded-full gmail-juice:h-8 gmail-juice:w-8"><div class="gmail-relative gmail-p-1 gmail-rounded-sm gmail-flex gmail-items-center gmail-justify-center gmail-bg-token-main-surface-primary gmail-text-token-text-primary gmail-h-6 gmail-w-6"></div></div></div></div></div><div class="gmail-group/conversation-turn gmail-relative gmail-flex gmail-w-full gmail-min-w-0 gmail-flex-col gmail-agent-turn"><div class="gmail-font-semibold gmail-select-none">ChatGPT</div><div class="gmail-flex-col gmail-gap-1 gmail-md:gap-3"><div class="gmail-flex gmail-flex-grow gmail-flex-col gmail-max-w-full"><div dir="auto" class="gmail-min-h-[20px] gmail-text-message gmail-flex gmail-flex-col gmail-items-start gmail-whitespace-pre-wrap gmail-break-words gmail-[.text-message+&]:mt-5 gmail-juice:w-full gmail-juice:items-end gmail-overflow-x-auto gmail-gap-3"><div class="gmail-markdown gmail-prose gmail-w-full gmail-break-words gmail-dark:prose-invert gmail-light"><p>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:</p><pre><div class="gmail-dark gmail-bg-gray-950 gmail-rounded-md gmail-border-[0.5px] gmail-border-token-border-medium"><div class="gmail-flex gmail-items-center gmail-relative gmail-text-token-text-secondary gmail-bg-token-main-surface-secondary gmail-px-4 gmail-py-2 gmail-text-xs gmail-font-sans gmail-justify-between gmail-rounded-t-md">vbnet<div class="gmail-flex gmail-items-center"><span class="gmail-"><button class="gmail-flex gmail-gap-1 gmail-items-center">Copy code</button></span></div></div><div class="gmail-overflow-y-auto gmail-p-4" dir="ltr"><code class="gmail-!whitespace-pre gmail-hljs gmail-language-vbnet"><span class="gmail-hljs-symbol">itk:</span>:ExceptionObject (<span class="gmail-hljs-number">000000</span>EBA52FDC68)
<span class="gmail-hljs-symbol">Location:</span> <span class="gmail-hljs-string">"unknown"</span>
<span class="gmail-hljs-symbol">File:</span> C:\ITK\src\Modules\Filtering\FFT\include\itkRealToHalfHermitianForwardFFTImageFilter.h
<span class="gmail-hljs-symbol">Line:</span> <span class="gmail-hljs-number">85</span>
<span class="gmail-hljs-symbol">Description:</span> ITK <span class="gmail-hljs-keyword">ERROR</span>: <span class="gmail-hljs-type">Object</span> factory failed <span class="gmail-hljs-keyword">to</span> instantiate <span class="gmail-hljs-keyword">class</span> itk::RealToHalfHermitianForwardFFTImageFilter<<span class="gmail-hljs-keyword">class</span> itk::Image<float,<span class="gmail-hljs-number">3</span>>,<span class="gmail-hljs-keyword">class</span> itk::Image<<span class="gmail-hljs-keyword">class</span> std::complex<float>,<span class="gmail-hljs-number">3</span>> >
</code></div></div></pre><p>Our FDK implementation in C++ is as follows:</p><pre><div class="gmail-dark gmail-bg-gray-950 gmail-rounded-md gmail-border-[0.5px] gmail-border-token-border-medium"><div class="gmail-flex gmail-items-center gmail-relative gmail-text-token-text-secondary gmail-bg-token-main-surface-secondary gmail-px-4 gmail-py-2 gmail-text-xs gmail-font-sans gmail-justify-between gmail-rounded-t-md">cpp<div class="gmail-flex gmail-items-center"><span class="gmail-"><button class="gmail-flex gmail-gap-1 gmail-items-center">Copy code</button></span></div></div><div class="gmail-overflow-y-auto gmail-p-4" dir="ltr"><code class="gmail-!whitespace-pre gmail-hljs gmail-language-cpp"><span class="gmail-hljs-keyword">using</span> FDKGPUType = rtk::CudaFDKConeBeamReconstructionFilter;

<span class="gmail-hljs-comment">// Creating the FDK reconstruction filter</span>
FDKGPUType::Pointer feldkamp = FDKGPUType::<span class="gmail-hljs-built_in">New</span>();

<span class="gmail-hljs-comment">// Setting input images for the FDK reconstruction filter</span>
feldkamp-><span class="gmail-hljs-built_in">SetInput</span>(<span class="gmail-hljs-number">0</span>, constantImageSource2-><span class="gmail-hljs-built_in">GetOutput</span>());
feldkamp-><span class="gmail-hljs-built_in">SetInput</span>(<span class="gmail-hljs-number">1</span>, ParkerFilter-><span class="gmail-hljs-built_in">GetOutput</span>()); <span class="gmail-hljs-comment">// This is the projection stack from rtkProjectionsReader</span>

<span class="gmail-hljs-comment">// Setting geometry for the FDK reconstruction filter</span>
feldkamp-><span class="gmail-hljs-built_in">SetGeometry</span>(geometry);

<span class="gmail-hljs-comment">// Setting ramp filter parameters</span>
feldkamp-><span class="gmail-hljs-built_in">GetRampFilter</span>()-><span class="gmail-hljs-built_in">SetTruncationCorrection</span>(<span class="gmail-hljs-number">0.0</span>);
feldkamp-><span class="gmail-hljs-built_in">GetRampFilter</span>()-><span class="gmail-hljs-built_in">SetHannCutFrequency</span>(<span class="gmail-hljs-number">0.0</span>);

<span class="gmail-hljs-comment">// Executing the reconstruction filter</span>
<span class="gmail-hljs-keyword">try</span> {
    feldkamp-><span class="gmail-hljs-built_in">Update</span>();
} </code></div></div></pre></div></div></div></div></div>We're employing ITK version 5.3 for this implementation. Any insights into the cause of this error would be greatly appreciated.<br><br>Regards,</div><div>Akshara  <br>  <br></div></div>