Tool to simulate projections from 3D shapes, e.g., meshes, in arbitrary geometries. Possible applications are simulation of X-ray or optical transmission projections.
This work was inspired by the ASTRA-toolbox, a MATLAB and Python toolbox of high-performance GPU primitives for 2D and 3D tomography for using volumetric data. The aim of this project is exclusively to overcome some downsides of simulating projections from volumetric data. There is thus no focus on reconstruction algorithms to generate 3D volumes form the simulated projections.
The CAD projector project aims to overcome some downsides of using volumetric data for projection simulations by working with geomtric objects, e.g., meshes. These possible downsides are:
- First, it is harder to visualize the system geometry and sample movement with volumetric data compared to using geometric objects.
- Second, if only a shape of the object is available, voxelization of the volume is needed before usage, which requires specifying the voxel size and values.
- Third, volumetric representations requires the expression of the position of the X-ray source and detector relative to the sample. In this project however, the movement patterns of geometric object can, in my opinion, be expressed more intuitively.
- Finally, in volumetric representations, the origin of the system is often located in the center of the volume. Here, the origin can be positioned arbitrarilly.
The main drowbacks of this implementation:
- It is much slower (no calculations on the GPU) compared to volumetric representations.
- Limited to applications where the sample have approximatly a homogenoeus density distribution.
- MATLAB (>= R2018b)
- Geometric computing library for 3D shapes: geom3d
Take a look at the example folder and the comments in the cad_projector class.
Apple fruit mesh downloaded from here
If you want to contribute back, please open an issue or make a pull request.
Please cite this repository in your publications if it helps your research.
@misc{tim_vandelooverbosch_2019_15991,
author = {Tim Van De Looverbosch},
title = {CAD Projector},
month = dec,
year = 2019,
doi = {10.5281/zenodo.3577548},
version = {0.0.0},
publisher = {Zenodo},
url = {https://doi.org/10.5281/zenodo.3577548}
}