This function can be used to interactively view any kind of 2D,3D and 4D image volumes like CT and MRI. Allowing segmentation and distance measurements or ROI selection in 2D slices.
It includes Maximum intensity projections (MIP), Volume Rendering (VR) , Slice render, and colored and Phong shaded Volume rendering.
Voxel opacity and color tables can be changed on the fly allowing also iso surface kind of renders.
The fast render algorithm which renders a 3D volume to a 2D image, is based on a Matlab coded implementation of the Shear-Warp transform, in which instead of rotating the viewer rays the slices are sheared.
There are two major Matlab files:
- viewer3d.m : The interactive GUI
- render.m : The function which renders volume data with the shear-warp transform to an 2D image.
Matlab Files (.mat)
Dicom Files ( .dcm , .dicom )
V3D Philips Scanner ( .v3d )
GIPL Guys Image Processing Lab ( .gipl )
HDR/IMG Analyze ( .hdr )
ISI Files ( .isi )
NifTi ( .nii )
RAW files ( .raw , .* )
VMP BrainVoyager ( .vmp )
XIF HDllab/ATL ultrasound ( .xif )
VTK Visualization Toolkit ( .vtk )
Insight Meta-Image ( .mha, .mhd )
Micro CT ( .vff )
This version is 100% Matlab code, but to make it faster if you run "compile c-code" in the config menu. I also included an older version with the shearwarp algorithm in c-code / mex-code
Please report bugs, successes and if you know some possible code speedups.
Dirk-Jan Kroon (2023). Viewer3D (https://www.mathworks.com/matlabcentral/fileexchange/21993-viewer3d), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
- Image Processing and Computer Vision > Image Processing Toolbox > 3-D Volumetric Image Processing >
- Industries > Medical Devices > DICOM Format >
- MATLAB > Graphics > 2-D and 3-D Plots > Surfaces, Volumes, and Polygons > Volume Visualization > Scalar Volume Data >
- MATLAB > Graphics > Images > Read, Write, and Modify Image >
- Sciences > Physics > Medical Physics >
- Engineering > Biomedical Engineering > Biomedical Imaging >
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Fixed mouse-position bug in R2015a
Now works with new Matlab versions such as R2015a. Thank you, "Zhensen Chen" for pointing out the UIpanel issue.
Added 4D support, color overlay and many other changes.
Major update : Added multiple window and multiple volume support.
Fixed Bug number of input arguments slice view, and fixed bug in window-level slider
Replaced the c-code Affine Warp files. Now scaling is not longer always 0..1 but supports scales and units like Hounsfield
Fixed folder location compile_c_files, changed text in code from dicom to data3d
Sorted files into sub-folders, now can read many medical-formats with ReadData3D
Fixed Dicom Sorting problem
Added Dicom Info dialog.
Solved major bugs in Dicom volume reading
Bug in "Load View" solved
Now read single Dicom files containing a whole 3D/4D volume.
Now "Autocontrast" is automatically enabled if someone uses uint16 and the data uses only a part of the rang 0 to 2^16-1
Linux Ubuntu tested
Removed unnecessary code from mouse position read out. Maybe this fixed the mouse position out of sync bug, which occurred sometimes.
Slice rendering and measurements, multi-threaded image warp code, bugs fixed.
Configuration screen, with trade off between quality, memory and speed. Implemented most suggestions by Cris Luengo. Some small bug fixes and optimizations.
Now 100% Matlab code, no mex files needed. Also warp 2D interpolation bug and save/load bug fixed.
fixed small dimension bug in major viewing axis. And files to folders
Extended the help (with pictures) and updated error check