Я немного подробнее расскажу о решении Бесси. Я обнаружил, что очень полезно знать, как заставить изображение занимать всю фигуру, и иметь возможность жестко контролировать размер выходного изображения.
% prevent the figure window from appearing at all
f = figure('visible','off');
% alternative way of hiding an existing figure
set(f, 'visible','off'); % can use the GCF function instead
% If you start getting odd error messages or blank images,
% add in a DRAWNOW call. Sometimes it helps fix rendering
% bugs, especially in long-running scripts on Linux.
%drawnow;
% optional: have the axes take up the whole figure
subplot('position', [0 0 1 1]);
% show the image and rectangle
im = imread('peppers.png');
imshow(im, 'border','tight');
rectangle('Position', [100, 100, 10, 10]);
% Save the image, controlling exactly the output
% image size (in this case, making it equal to
% the input's).
[H,W,D] = size(im);
dpi = 100;
set(f, 'paperposition', [0 0 W/dpi H/dpi]);
set(f, 'papersize', [W/dpi H/dpi]);
print(f, sprintf('-r%d',dpi), '-dtiff', 'image2.tif');
Если вы хотите отобразить рисунок в матрице, введите «help @ avifile / addframe», а затем извлеките подфункцию «getFrameForFigure». Это предоставляемая Mathworks функция, которая использует некоторые (в настоящее время) недокументированные способы извлечения данных из рисунка.