imshow - plotting a circular image, how to make corners white?

1 visualizzazione (ultimi 30 giorni)
Hi
I have a circular image but it's stored as a grayscale matrix, ie. square. When I use "imshow" with the jet colormap it automatically makes the areas outside the circle blue (because the matrix elements are all 0s).
Is there a fix for this? I want the areas outside the circle to be white, or not plotted, without messing with the colormap (which then ruins the colorbar).
Thanks for any help
Mike

Risposte (2)

Junaid
Junaid il 26 Apr 2012
Could you share your matrix. Or try following command.
colormap gray;
This will make show boundary either black or white.

Image Analyst
Image Analyst il 26 Apr 2012
Just adjust the colormap:
% Start with the jet colormap.
cmap = jet(256);
% Change 0 from blue to white.
% Gray level of zero will now show up as white rather than blue.
cmap(0,:) = [1 1 1];
% Apply the colormap (a modified jet colormap).
colormap(cmap);
  1 Commento
Michael
Michael il 26 Apr 2012
This works, although I have two side-effects, first, the genuine 0 values within the circle appear as white regions (not blue), and also the colorbar is distorted.
I was hoping for an alternative method that doesn't involve this kind of fiddling, because now I have to change the image boundaries and the colorbar properties I think
Thanks for the reply

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by