原文:http://blogs.mathworks.com/steve/2006/04/05/all-about-pixel-colors-grayscale-and-binary-images/
Grayscale image display
If you pass a single argument to the toolbox's two main image display functions (imtool and imshow), they'll interpret the input as a grayscale image. Here's an illustration using a simple sinusoid:
theta = linspace(0, 2*pi, 256);
I = repmat((-cos(2*theta) + 1)/2, [256 1]);
h = imshow(I); % Save the handle for use below.
As far as MATLAB itself is concerned, this is a scaled indexed image being displayed in a figure with a grayscale colormap installed. Here are the key properties that have been set to control the image display:
get(h, 'CDataMapping')
The toolbox convention is that, for floating-point images, 0 is displayed as black and 1 is displayed as white.
get(gca, 'CLim')
map = get(gcf, 'Colormap');
map(1:5, :) % Display the first few colormap colors
imshow (and
imtool) handle all these details for you.
Controlling the grayscale display range
imshow and imtool allow you to override the conventional display range and specify your own black and white values. You do this by providing a second input argument, a two-element vector containing the black and white values. In the call to imshow below, 0.4 (and any lower value) gets displayed as black. The value 0.6 (and any higher value) gets displayed as white.
imshow(I, [0.4 0.6])
Binary image display
The other Image Processing Toolbox image display model is the binary image. If you supply a single input argument that is logical, then imtool and imshow (as well as many other toolbox functions) interpret that input as a binary image.
bw = imread('text.png');
islogical(bw)
h = imshow(bw);