Skip to content

Half tomography reconstruction without sinogram stitching

Pierre Paleo requested to merge ha_without_stitching into master

About

Follow-up of #378 (closed).

Building the extended sinogram when using half-tomography (HA) mode was appealing for some purposes (ex. debug), but it has numerous issues:

  • When there are intensities fluctuations, stitching the two parts will give artefacts (#378 (closed))
  • Cannot use horizontal translations #411 (closed)
  • Eventually more complex design

From this MR, HA-reconstruction will be done without building the half-tomography sinogram. Nabu still may provide some script to visualize the extended sinogram.

On a ID16B dataset, the only working approach is the following:

  • Filter the sinogram
  • Extend using the algotom approach in [Vo21]
  • Use plain backprojetion

To do

  • SinoMult class and cuda backend
  • Include halftomo handling directly in FBP
  • Update halftomo unit tests
  • Update pipeline
  • End-to-end reconstruction test

Notes

The sinogram extension used is the one from algotom: https://github.com/algotom/algotom/blob/master/algotom/prep/conversion.py#L394

The sub-pixel shift is probably overkill, though.

# Extend the 360deg sinogram, then FBP
si_extended, nc = extend_sinogram(si, r, apply_log=False)
B_e = Backprojector(si_extended.shape, padding_mode="edges", rot_center=nc, extra_options={"centered_axis": True}, angles=np.linspace(0, 2*np.pi, si_p.shape[0]))
rec = B_e.fbp(si_extended) # not so good

# Filter the 360deg sinogram
B0 = Backprojector(si.shape, padding_mode="edges", rot_center=r)
si_f = B0.sino_filter(si)

# Extend this filtered sinogram, then plain backproj
si_extended2, nc = extend_sinogram(si_f, r, apply_log=False)
rec2 = B_e.backproj(si_extended2) # good

References

[Vo21] Nghia T. Vo, Robert C. Atwood, Michael Drakopoulos, and Thomas Connolley, "Data processing methods and data acquisition for samples larger than the field of view in parallel-beam tomography," Opt. Express 29, 17849-17874 (2021) - https://opg.optica.org/oe/fulltext.cfm?uri=oe-29-12-17849&id=451366

Edited by Pierre Paleo

Merge request reports