A sequentiel and parallel implementation of the Dividing Cubes algorithm using C++ and CUDA.
3D image reconstruction has the potential to bring major advancements in science and medicine by allowing the visualization of inner living organs in their real states and forms. Using modern modalities such as Computed Tomography (CT) and Magnetic Resonance Imaging (MRI), serial 2D images are produced and used in 3D reconstruction. However, the reconstruction process is very slow and very expensive in terms of compute resources due to the massive quantity of data to process resulted from the acquisition task. Meanwhile, Graphic Processing Unit (GPU), with its tremendous capability of parallel computing, becomes more and more popular in High Performance Computing. In addition, CUDA, a parallel computing platform and programming model that was invented by NVIDIA, makes GPU programming much easier and faster. In our research, we focused on the use of this power of parallel computing in order to accelerate the reconstruction process while trying to have the most accurate representation of the reconstructed object.
3D Medical Imaging, Image Reconstruction, Dividing Cubes, GPU, CUDA.
- Skull : raw files can be found in Datasets/Skul.
- Head : raw files can be found in Datasets/Head.
Reads raw dataset files. A raw file contains the collection of slices obtained from the aquisition step.
Runs DC sequentially using one CPU core.
Runs DC in parallel on the GPU.
Allows you to visualize the 3D reconstructed results.
- Running this code requires a CUDA capable GPU (compute capability 2.2)
- The datasets (in : Datasets) used in this project have all been obtained from here
-
Mohamed Tahar KEDJOUR @kjmx
-
Anis LOUNIS @anixpasbesoin