MIP, Color, Slice and Shaded 3D (shearwarp) Volume Rendering, interactive 3D view/measurement GUI
Updated 15 Sep 2016

View License

Editor's Note: Popular File 2016

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.

File-formats supported:
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.

Cite As

Dirk-Jan Kroon (2024). Viewer3D (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2015a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!




















Version Published Release Notes

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.
Now also works without Image-Processing Toolbox

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

Updated File-formats

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 possible bugs when loading multiple files, without closing viewer3d.
Added Intensity Value to mouse slice info

Solved major bugs in Dicom volume reading

Bug in "Load View" solved

Now read single Dicom files containing a whole 3D/4D volume.
Fixed bug dividing by zero with empty slice in auto contrast.
Added option to click landmarks, and made keyboard shortcuts for measure options.

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