3D structure not displaying correctly (volumeViewer) - example 3D data does not display properly.

5 views (last 30 days)
I am using the volumeViewer to look at a CT scan of a beam.
I have a 3D data set for a binary image which is a 1000x1000x1000 logical. I have tried looking at unthresholded data which is a uint8 and have the same problem.
The 3D body is not displaying correctly, it looks as if the top and bottom slice display but the structure inbetween does not. (See attached image)
The object does display if the slice panes are used, but not for the volume.
I am using matlab 2019a. The structure displayed correctly on a colleagues computer (The entire beam is visible).
The same problem occurs when looking at example 3D data vol_001.mat found here:
load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled','images','vol_001.mat'));
load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled','labels','label_001.mat'));
So I assume this is some problem with my computer but I don't know what is wrong. I have played around with the rendering options but they only seem to affect the outside of the body, rather than the internal structure.
Any suggestions are appreciated.
  3 Comments
Bobby Huxford
Bobby Huxford on 15 Jul 2019
Thanks for your response Bruno.
I updated my graphic card driver, which had no effect.
I then tried,
opengl software
but that gives the following error :
(I guess the software driver isnt strong enough for the volume viewer app?)
Error using images.internal.app.volview.checkOpenGLDrivers
Windows Software OpenGL support does not meet the minimum requirement of this
app. Try executing the command "opengl hardware". Type "doc opengl" for more
information.
Error in images.internal.app.volview.VolumeViewer/setupApp
Error in images.internal.app.volview.VolumeViewer
Error in volumeViewer (line 61)
images.internal.app.volview.VolumeViewer(varargin{:});
I also tried using 'hardwarebasic' in the opengl function but it doesn't have an effect.
Bobby Huxford
Bobby Huxford on 16 Jul 2019
Another point that may be relevant, If I import a volume (using an example below) - the body is not displayed, see the first image.
load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled','images','vol_001.mat'));
However if I use a labelled volume, the body is (partially) displayed.
load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled','labels','label_001.mat'));
vol.png
label.png

Sign in to comment.

Accepted Answer

Bobby Huxford
Bobby Huxford on 1 Aug 2019
Turns out my GPU is a bit old for the volumeViewer app.
The Matlab support team were very helpful to find a workaround.
The workaround is below, but if at all possible try find a solution which allows you to use your GPU as it is much faster than using the CPU.
1. Force volume viewer app to not use GPU
iptsetpref('VolumeViewerUseHardware',0);
2. Reduce the size of the data, so as to use the non-GPU volume rendering
vol = binary(1:2:end,1:2:end,1:2:end);
3. Convert data to uint8 as logical data is not supported for non-GPU method
vol = uint8(vol);
4. Load the app
volumeViewer(vol)

More Answers (0)

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!