How do I limit the range of a colormap when using imwrite
29 views (last 30 days)
Michael Devereux on 23 Apr 2018
I want to save an image with imwrite and get the same output as the code below displays on screen
Is it possible to set a caxis property for imwrite?
EDIT: I have included the full code. Basically, I want the last image RGB to look the same as that displayed by imagesc at each stage.
Inner = 0; % inner radius of the colour ring
rOuter = 150; % outer radius of the colour ring
[x, y] = meshgrid(-rOuter:.1:rOuter);
[theta, rho] = cart2pol(x, y);
rhoi2(rhoi2<.55) = .55;
rhoi2(rhoi2> .95) = .95;
Guillaume on 24 Apr 2018
Before the call to ind2rgb (or imwrite), you need to rescale your matrix as colour indices so that the minimum is index 1 (for type double, 0 for type uint8) and maximum is index 256 (255 for uint8):
X = round(1 + (rhoi2 - min(rhoi2(:))) * 255 / (max(rhoi2(:)) - min(rhoi2(:)))); %using double
RGB = ind2rgb(X, cmap);