Cone-beam: add support for 'slice_roi'
About
This MR adds support for reconstruction in a subregion for cone-beam
To do
-
Implement slice_roi
in cone-beam -
Unit tests -
Integrate in pipeline -
End-to-end reconstruction test
Notes
For FDK, astra will only handle a sub-region centered on the origin. A more advanced volume geometry can be specified, but won't work for FDK.
For ID16 use case, the data is padded for pre-processing (eg. phase), so it should be padded with the same length on the left and on the right. So it should be enough for us.
For example if the projections have 3200
pixels horizontally, we can specify start_x = 200, end_x = 3000
but not something like start_x = 200, end_x = 2850
.
Same for (start_y, end_y)
(though the axes are handled independently, i.e the selection does not have to be square)
The general case (i.e arbitrary (start_x, end_x), (start_y, end_y)
) will take more time.
On principle it simply amounts to cropping the volume after reconstruction, but since I do everything on GPU, there are some quirks with arrays allocation, transfers and so on.