<div dir="ltr"><p dir="auto" style="box-sizing:border-box;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;margin-top:0px">Hello for everyone,</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">I have some problems with reconstruction of real data. If I use the code below, then the resulting reconstructions are of very poor quality. It seems to me that I don't understand something fundamental.</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">Some info about my data:<br style="box-sizing:border-box">I have 7201 projections in .tiff format, angle between projections — 0.05. Detector pixel size — 85.0 micrometer.<br style="box-sizing:border-box">I also already have a reconstruction of this data (1490x1490x1408) from a different company, but I also want to try to reconstruct and compare the quality of resulting images.</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">Here is the basic python code I am trying to use (modified from the example), if anyone can see what I might be doing wrong I would appreciate it:</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">(some code of import modules)<br style="box-sizing:border-box">tiffio = itk.TIFFImageIO.New()<br style="box-sizing:border-box">ImageType = itk.Image[itk.F,3]</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">ProjectionsReaderType = rtk.ProjectionsReader[ImageType]<br style="box-sizing:border-box">projectionsSource = ProjectionsReaderType.New()<br style="box-sizing:border-box">projectionsSource.SetImageIO(tiffio)<br style="box-sizing:border-box">projectionsSource.SetFileNames(data_names)<br style="box-sizing:border-box">projectionsSource.GetOrigin() # output — itkVectorD3 ([1.79769e+308, 1.79769e+308, 1.79769e+308])<br style="box-sizing:border-box">projectionsSource.GetSpacing() # output — itkPointD3 ([1.79769e+308, 1.79769e+308, 1.79769e+308])<br style="box-sizing:border-box">geometry = rtk.ThreeDCircularProjectionGeometry.New()</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">projOffsetX=0.0375<br style="box-sizing:border-box">projOffsetY=-27.965<br style="box-sizing:border-box">numberOfProjections = 7201<br style="box-sizing:border-box">firstAngle = 0.<br style="box-sizing:border-box">angularArc = 360.<br style="box-sizing:border-box">sid = 17.2 # source to isocenter distance<br style="box-sizing:border-box">sdd = 795 # source to detector distance<br style="box-sizing:border-box">for x in range(0,numberOfProjections):<br style="box-sizing:border-box">angle = firstAngle + x * angularArc / numberOfProjections<br style="box-sizing:border-box">geometry.AddProjection(sid,sdd,angle, projOffsetX, projOffsetY)</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">ConstantImageSourceType = rtk.ConstantImageSource[ImageType]<br style="box-sizing:border-box">constantImageSource2 = ConstantImageSourceType.New()<br style="box-sizing:border-box">origin = [-0.003677988*(1490-1)/2, -0.003677988*(1490-1)/2, 0]<br style="box-sizing:border-box">sizeOutput = [1490, 1490, 1410]<br style="box-sizing:border-box">spacing = [ 0.003677988, 0.003677988, 0.003677988] # Image pixel size — 3.677988 micrometers, so I convert to mm<br style="box-sizing:border-box">constantImageSource2.SetOrigin(origin)<br style="box-sizing:border-box">constantImageSource2.SetSpacing( spacing )<br style="box-sizing:border-box">constantImageSource2.SetSize( sizeOutput )<br style="box-sizing:border-box">constantImageSource2.SetConstant(0.)</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">print("Reconstructing...")<br style="box-sizing:border-box">FDKCPUType = rtk.FDKConeBeamReconstructionFilter[ImageType]<br style="box-sizing:border-box">feldkamp = FDKCPUType.New()<br style="box-sizing:border-box">feldkamp.SetInput(0, constantImageSource2.GetOutput())<br style="box-sizing:border-box">feldkamp.SetInput(1, projectionsSource.GetOutput())<br style="box-sizing:border-box">feldkamp.SetGeometry(geometry)<br style="box-sizing:border-box">feldkamp.GetRampFilter().SetTruncationCorrection(0.0)<br style="box-sizing:border-box">feldkamp.GetRampFilter().SetHannCutFrequency(0.0)</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">feldkamp.Update()<br style="box-sizing:border-box">output = feldkamp.GetOutput()</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px">print("Writing output image...")<br style="box-sizing:border-box">WriterType = rtk.ImageFileWriter[ImageType]<br style="box-sizing:border-box">writer = WriterType.New()<br style="box-sizing:border-box">writer.SetFileName("rec.tif")<br style="box-sizing:border-box">writer.SetInput(feldkamp.GetOutput())<br style="box-sizing:border-box">writer.Update()</p><p dir="auto" style="box-sizing:border-box;margin-top:0px;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;margin-bottom:0px">Regards, Ruslan</p></div>