Volshow contrast or scaling the colormap
21 views (last 30 days)
Show older comments
Is there a way to scale the colormap in volshow()? Similar to using 'caxis', [min max] for image()?
0 Comments
Accepted Answer
Tim
on 29 Oct 2020
Edited: Tim
on 29 Oct 2020
% Example volume
imcube = bsxfun(@power, rand(30, 30, 100),...
permute(linspace(0, 8, 100), [3, 1, 2])).*...
permute(linspace(1, 0, 100), [3, 1, 2]);
% Pick your color map
cmp = jet;
% Generate your volume object
V = volshow(imcube,...
'Renderer', 'MaximumIntensityProjection',...
'Colormap', cmp,...
'BackgroundColor', [0, 0, 0]);
% Set your new color axis. This does the same thing as caxis normally
% would.
% % % % % % % % % % % % CAXIS EQUIVALENT % % % % % % % % % %
VAxis = [0.2, 1.5];
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% Generate new scale
newscale = linspace(min(imcube(:)) - min(VAxis(:)),...
max(imcube(:)) - min(VAxis(:)), size(cmp, 1))/diff(VAxis);
newscale(newscale < 0) = 0;
newscale(newscale > 1) = 1;
% Update colormap in volshow
V.Colormap = interp1(linspace(0, 1, size(cmp, 1)), cmp, newscale);
More Answers (1)
Pratyush Roy
on 27 Oct 2020
Hi,
Assuming that the colormap generation is being a bit difficult, one can use the "ColorMap" property of the volshow() function to manually generate a colormap.
The following documentation link might be of further help:
0 Comments
See Also
Categories
Find more on Basic Display in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!