
Figure 1
Overview of Fan-slicer package pipelines. Given a virtual ultrasound transducer pose, the package can generate ultrasound shaped images from segmented medical surfaces by voxelising binary volumes or directly from 3D volumetric medical images.

Figure 2
Overview of the two Fan-slicer image sampling classes. Left shows class instantiation and right shows the image sampling process. Inputs are highlighted in blue, classes in gray, methods in green and dependencies in orange.
Table 1
Description of CUDA kernels in cuda_reslicing.py and functions where these are used. On the left column, a number shows the order in which the kernel is called for simulation.
| KERNEL | DESCRIPTION |
|---|---|
| transform (1) | Generates point clouds of 3D fan-shaped planes from 4 × 4 poses. Used by slice_volume and intensity_slice_volume. |
| linear_transform (1) | Generates point clouds of 3D rectangle-shaped planes from 4 × 4 poses. Used by linear_slice_volume and linear_intensity_slice_volume. |
| slice (2) | Uses nearest-neighbour interpolation to map values from a 3D binary array to a set of 3D points. Used by slice_volume and linear_slice_volume. |
| weighted_slice (2) | Uses tri-linear interpolation to map values from a 3D array to a set of 3D points. Used by intensity_slice_volume and linear_intensity_slice_volume. |
| map_back (3) | Uses nearest-neighbour interpolation to warp a 2D grid of binary values onto a curvilinear/fan-shaped grid. Used by slice_volume. |
| intensity_map_back (3) | Uses bi-linear interpolation to warp a 2D grid of intensity values onto a curvilinear/fan-shaped grid. Used by intensity_slice_volume. |
