<div dir="ltr"><div>Hi,</div><div>CG reconstruction does not automatically perform better. Iterative algorithms require some regularization to control the noise. No regularization (what you do here I presume?) or too strong regularization will give a bad result. You can try to set some regularization with SetGamma (see <a href="http://www.openrtk.org/Doxygen/classrtk_1_1ConjugateGradientConeBeamReconstructionFilter.html">http://www.openrtk.org/Doxygen/classrtk_1_1ConjugateGradientConeBeamReconstructionFilter.html</a>, detailed description).</div><div>Simon<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 29, 2021 at 12:24 PM Wang, Dongping <<a href="mailto:Dongping.Wang@bakerhughes.com">Dongping.Wang@bakerhughes.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div style="overflow-wrap: break-word;" lang="EN-US">
<div class="gmail-m_-8187547941262461209WordSection1">
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">Hi Rit and all<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">I am trying to recon with conjugategradient  with the following python code:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">From my understanding, cg recon should have a better accurate than fdk, however it seems not. Could you give me some suggestion what I can do to improve the recon with CG?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><img style="width: 12.1111in; height: 8.5694in;" id="gmail-m_-8187547941262461209Picture_x0020_1" src="cid:17c31b764804ce8e91" width="1163" height="823"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#!/usr/bin/env python<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">import sys<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">import itk<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">from itk import RTK as rtk<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">if len ( sys.argv ) < 3:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">  print( "Usage: FirstReconstruction <outputimage> <outputgeometry>" )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">  sys.exit ( 1 )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">sys.argv[1]="output_image.mha"<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">sys.argv[2]="gantry_geometry"<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"># Defines the image type<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">ImageType = itk.Image[itk.F,3]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"># Defines the RTK geometry object<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">geometry = rtk.ThreeDCircularProjectionGeometry.New()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">numberOfProjections = 520<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">firstAngle = 0.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">angularArc = 360<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">sid = 200 # source to isocenter distance<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">sdd = 400 # source to detector distance<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">for x in range(0,numberOfProjections):<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">  angle = firstAngle + x * angularArc / numberOfProjections<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">  geometry.AddProjection(sid,sdd,angle)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"># Writing the geometry to disk<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">xmlWriter = rtk.ThreeDCircularProjectionGeometryXMLFileWriter.New()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">xmlWriter.SetFilename ( sys.argv[2] )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">xmlWriter.SetObject ( geometry )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">xmlWriter.WriteFile()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"># Create a stack of empty projection images<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">ConstantImageSourceType = rtk.ConstantImageSource[ImageType]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource = ConstantImageSourceType.New()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">origin = [ -127, -127, 0. ]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">sizeOutput = [ 128, 128,  numberOfProjections ]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">spacing = [ 2.0, 2.0, 2.0 ]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource.SetOrigin( origin )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource.SetSpacing( spacing )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource.SetSize( sizeOutput )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource.SetConstant(0.)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">REIType = rtk.RayEllipsoidIntersectionImageFilter[ImageType, ImageType]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">rei = REIType.New()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">semiprincipalaxis = [ 50, 50, 50]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">center = [ 0, 0, 10]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"># Set GrayScale value, axes, center...<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">rei.SetDensity(2)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">rei.SetAngle(0)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">rei.SetCenter(center)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">rei.SetAxis(semiprincipalaxis)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">rei.SetGeometry( geometry )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">rei.SetInput(constantImageSource.GetOutput())<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"># Create reconstructed image<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource2 = ConstantImageSourceType.New()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">sizeOutput = [ 128, 128, 128 ]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">origin = [ -63.5, -63.5, -63.5 ]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">spacing = [ 1.0, 1.0, 1.0 ]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource2.SetOrigin( origin )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource2.SetSpacing( spacing )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource2.SetSize( sizeOutput )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource2.SetConstant(0.)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"># Create weight image<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource3 = ConstantImageSourceType.New()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">sizeOutput = [ 128, 128, numberOfProjections ]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">origin = [ -127, -127, 0 ]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">spacing = [ 2.0, 2.0, 2.0 ]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource3.SetOrigin( origin )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource3.SetSpacing( spacing )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource3.SetSize( sizeOutput )<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">constantImageSource3.SetConstant(1.)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"># FDK reconstruction<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#print("Reconstructing...")<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#FDKCPUType = rtk.FDKConeBeamReconstructionFilter[ImageType]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#feldkamp = FDKCPUType.New()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#feldkamp.SetInput(0, constantImageSource2.GetOutput())<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#feldkamp.SetInput(1, rei.GetOutput())<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#feldkamp.SetGeometry(geometry)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#feldkamp.GetRampFilter().SetTruncationCorrection(0.0)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#feldkamp.GetRampFilter().SetHannCutFrequency(0.0)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"># CG reconstruction<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">print("Reconstructing...")<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">CGCPUType = rtk.ConjugateGradientConeBeamReconstructionFilter[ImageType]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">cg = CGCPUType.New()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">cg.SetInput(0, constantImageSource2.GetOutput())<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">cg.SetInput(1, rei.GetOutput())<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">cg.SetInput(2, constantImageSource3.GetOutput())<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">cg.SetGeometry(geometry)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">cg.SetNumberOfIterations(500);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#conjugategradient->SetDisableDisplacedDetectorFilter(args_info.nodisplaced_flag);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">#Field-of-view masking<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">FOVFilterType = rtk.FieldOfViewImageFilter[ImageType, ImageType]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">fieldofview = FOVFilterType.New()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">fieldofview.SetInput(0, cg.GetOutput())<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">fieldofview.SetProjectionsStack(rei.GetOutput())<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">fieldofview.SetGeometry(geometry)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"># Writer<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">print("Writing output image...")<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">WriterType = rtk.ImageFileWriter[ImageType]<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">writer = WriterType.New()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">writer.SetFileName(sys.argv[1])<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">writer.SetInput(fieldofview.GetOutput())<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">writer.Update()<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">print("Done!")<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">regards<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif">Wang Dongping<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif"><u></u> <u></u></span></p>
<div>
<div style="border-color:rgb(225,225,225) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11pt;font-family:"Calibri",sans-serif"> Simon Rit <<a href="mailto:simon.rit@creatis.insa-lyon.fr" target="_blank">simon.rit@creatis.insa-lyon.fr</a>>
<br>
<b>Sent:</b> Friday, September 24, 2021 3:06 PM<br>
<b>To:</b> Wang, Dongping <<a href="mailto:Dongping.Wang@bakerhughes.com" target="_blank">Dongping.Wang@bakerhughes.com</a>><br>
<b>Cc:</b> <a href="mailto:rtk-users@openrtk.org" target="_blank">rtk-users@openrtk.org</a><br>
<b>Subject:</b> Re: the source code of non cuda version<u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border:1pt solid black;padding:2pt">
<p class="MsoNormal" style="line-height:12pt;background:rgb(1,131,116) none repeat scroll 0% 0%"><b><span style="font-size:10pt;font-family:"Calibri",sans-serif;color:white">  EXTERNAL EMAIL:</span></b><span style="font-size:10pt;font-family:"Calibri",sans-serif;color:white"> This email
 originated outside of our organization. Do not click on any links or open attachments unless you recognize the sender and know the content is safe.
<u></u><u></u></span></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<div>
<p class="MsoNormal">Hi,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Please use the RTK mailing list (cc). The CPU code is templated to be able to use different types (double, float, etc.). The source code is
<a href="https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FSimonRit%2FRTK%2Fblob%2Fmaster%2Finclude%2FrtkFDKConeBeamReconstructionFilter.hxx&data=04%7C01%7C%7C18f35d7a617f49d3c94208d97f29d430%7Cd584a4b7b1f24714a578fd4d43c146a6%7C0%7C0%7C637680640637639107%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=US7lI3b1IR%2Bgmoo3BP0EXqhGxzO%2Fqgeuzf8Nek4GEk8%3D&reserved=0" target="_blank">
here</a>, in an hxx file the include subfolder. You can check the <a href="https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FItkSoftwareGuide.pdf&data=04%7C01%7C%7C18f35d7a617f49d3c94208d97f29d430%7Cd584a4b7b1f24714a578fd4d43c146a6%7C0%7C0%7C637680640637639107%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=MP2o5wm5%2BQs4x0mHlzgZy87jM%2BCo%2FtdsPDh0FxA0Zdg%3D&reserved=0" target="_blank">
ITK guide</a> for more information on that, e.g. section 3.2.2.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Simon<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Fri, Sep 24, 2021 at 3:00 AM Wang, Dongping <<a href="mailto:Dongping.Wang@bakerhughes.com" target="_blank">Dongping.Wang@bakerhughes.com</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border-color:currentcolor currentcolor currentcolor rgb(204,204,204);border-style:none none none solid;border-width:medium medium medium 1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal">Hello Simon<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">I am learning RTK now and found we have this file in source folder<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"><a href="https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FSimonRit%2FRTK%2Fblob%2Fmaster%2Fsrc%2FrtkCudaFDKConeBeamReconstructionFilter.cxx&data=04%7C01%7C%7C18f35d7a617f49d3c94208d97f29d430%7Cd584a4b7b1f24714a578fd4d43c146a6%7C0%7C0%7C637680640637649103%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=M27lGDY6e%2Fit4w7pmKsv5JkO8904v5KLgrW%2Bq8d90fg%3D&reserved=0" title="rtkCudaFDKConeBeamReconstructionFilter.cxx" target="_blank"><span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;background:rgb(246,248,250) none repeat scroll 0% 0%">rtkCudaFDKConeBeamReconstructionFilter.cxx</span></a><u></u><u></u></p>
<p class="MsoNormal">but we do not have non Cuda version in source folder for
<a href="https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FSimonRit%2FRTK%2Fblob%2Fmaster%2Fsrc%2FrtkCudaFDKConeBeamReconstructionFilter.cxx&data=04%7C01%7C%7C18f35d7a617f49d3c94208d97f29d430%7Cd584a4b7b1f24714a578fd4d43c146a6%7C0%7C0%7C637680640637649103%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=M27lGDY6e%2Fit4w7pmKsv5JkO8904v5KLgrW%2Bq8d90fg%3D&reserved=0" title="rtkCudaFDKConeBeamReconstructionFilter.cxx" target="_blank">
<span style="font-size:10.5pt;font-family:"Segoe UI",sans-serif;background:rgb(246,248,250) none repeat scroll 0% 0%">rtkFDKConeBeamReconstructionFilter.cxx</span></a>.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">could you enlighten me where this file may be or how it works together? Thanks in advance!<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal" style="text-align:justify">
<b><span style="font-size:9pt;font-family:Arial-BoldMT;color:rgb(1,132,116)">Dongping Wang</span></b><u></u><u></u></p>
<p class="MsoNormal" style="text-align:justify">
<b><span style="font-size:9pt;font-family:Arial-BoldMT;color:rgb(1,132,116)"> </span></b><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">Waygate Technologies</span><u></u><u></u></p>
<p class="MsoNormal" style="text-align:justify">
<span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">Baker Hughes</span><u></u><u></u></p>
<p class="MsoNormal" style="text-align:justify">
<span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">C071, F4, BLD 2, GE China Technology Park (CTP)</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">No.1 Hua Tuo Road, Shanghai, 201203, China</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:DengXian;color:rgb(148,148,148)" lang="ZH-CN">通用电气检测控制技术</span><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">(</span><span style="font-size:8pt;font-family:DengXian;color:rgb(148,148,148)" lang="ZH-CN">上海</span><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">)</span><span style="font-size:8pt;font-family:DengXian;color:rgb(148,148,148)" lang="ZH-CN">有限公司</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:DengXian;color:rgb(148,148,148)" lang="ZH-CN">上海市浦东新区华佗路</span><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">1</span><span style="font-size:8pt;font-family:DengXian;color:rgb(148,148,148)" lang="ZH-CN">号</span><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">2</span><span style="font-size:8pt;font-family:DengXian;color:rgb(148,148,148)" lang="ZH-CN">号楼</span><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">4</span><span style="font-size:8pt;font-family:DengXian;color:rgb(148,148,148)" lang="ZH-CN">层</span><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">C071</span><span style="font-size:8pt;font-family:DengXian;color:rgb(148,148,148)" lang="ZH-CN">(邮编:</span><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)">201203</span><span style="font-size:8pt;font-family:DengXian;color:rgb(148,148,148)" lang="ZH-CN">)</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:8pt;font-family:"Arial",sans-serif;color:rgb(148,148,148)"> </span><u></u><u></u></p>
<p class="MsoNormal"><a href="mailto:Najie.jiao@bakerhughes.com" target="_blank"><span style="font-size:9pt;font-family:"Arial",sans-serif;color:rgb(5,99,193)">dongping.wang@bakerhughes.com</span></a><span style="font-size:9pt;font-family:"Arial",sans-serif;color:blue">                                        
</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:9pt;font-family:"Arial",sans-serif;color:blue"><a href="https://nam12.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbakerhughes.com%2F&data=04%7C01%7C%7C18f35d7a617f49d3c94208d97f29d430%7Cd584a4b7b1f24714a578fd4d43c146a6%7C0%7C0%7C637680640637659095%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=nELjvs%2FtcGhKD1qxxqv6M12bU0tjT5zejo05QOlyaRU%3D&reserved=0" target="_blank">bakerhughes.com</a></span><u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>

</blockquote></div>