Cesar Salcedo

3D Compression and Rendering of MRI images

Dec 22, 2020

Final project for CS3102 - Advanced Data Structures at University of Engineering and Technology (UTEC).
The final project for CS3102 - Advanced Data Structures consisted of implementing an octree data structure for 3D compression. To test the correct functionality of the algorithm, a set of MRI images were used as benchmark. The idea is to visualy compare images obtained from the non-compressed volume vs. those from the 3D image stored at the octree. The project was developed in C++ and all source code can be found here. The following article presents some of the images and videos obtained from the renderer processing a set of MRI images as a volume.
To start with, the program can be used to take slices of the 3D volume from any angle and position. The following is an example of a diagonal slice from the corner
Diagonal slice of 3D volume formed by stacked MRI images.
Diagonal slice of 3D volume formed by stacked MRI images.
By taking many slices of the same volume along a known trajectory we can make a more informative video of the object. In the following table we compare the non-compressed (bitmap) and compressed (octree) versions of videos obtained for a series of trajectories.
Trajectory
Bitmap
Octree
Frontal
Grid frontal scan
Octree frontal scan
Diagonal
Grid corner scan
Octree corner scan
Rotational
Grid rotation
Octree rotation

References