MATLAB: Plot an array greyscale but certain pixels marked in red

color mapgreyscaleimagesc

I have an MxN array of integers that makes an image that can be plotted with imagesc. I'd like to plot the whole image with greyscale but plot all pixels that have value X in red. Any thoughts?

Best Answer

mymap = gray; %copy the grayscale map
mymap(SomeIndex,:) = [1 0 0]; %set one particular entry to be red
imagesc(YourImage);
colormap(mymap);
This code does require that you figure out what map index the value X will be mapped to by imagesc.
There are alternatives involving overlaying a red image of exactly the same size that is transparent everywhere except for the places X is. This requires OpenGL (no other renderer handles transparency)