www.gusucode.com > graphics 案例源码程序 matlab代码 > graphics/AddTextToImageDataExample.m

    %% Add Text to Image Data
% This example shows how to use array indexing to rasterize text 
% into an existing image.

%%
% Draw the text in an axes using the |text| function. Then, capture the
% text from the screen using |getframe| and close the figure.
fig = figure;
t = text(.05,.1,'Mandrill Face','FontSize',20,'FontWeight','bold');
F = getframe(gca,[10 10 200 200]);
close(fig)

%%
% Select any plane of the resulting RGB image returned by |getframe|. Find
% the pixels that are black (black is 0) and convert their subscripts to
% indexes using |sub2ind|. Use these subscripts to "paint" the text into
% the image contained in the |mandrill| MAT-file. Use the size of that
% image, plus the row and column locations of the text to determine the
% locations in the new image. Index into new image, replacing pixels.
c = F.cdata(:,:,1);
[i,j] = find(c==0);
load mandrill
ind = sub2ind(size(X),i,j);
X(ind) = uint8(255);

%%
% Display the new image using the bone colormap.
imagesc(X)
colormap bone