2016-08-15 2 views
2

Я знаю, что есть много ответов на эту проблему, но я не нашел никого, кто помог бы мне .. У меня есть GUI в MATLAB с 2 осями, и я хочу сохранить отдельно каждая ось - как .jpeg или любой другой формат. В любом случае, я попробовал - у меня есть либо изображение, которое включает в себя весь графический интерфейс, либо уменьшенную фигуру. Любая идея, как я могу получить 2 хороших изображения?Сохранить оси в графическом интерфейсе как изображение MATLAB

+0

I попытались открыть фигуру и сделать copyobj, а затем saveas, но изображение было разрезано. – erez

+0

Я также попытался сделать savefig, и в этом случае все фигуры были сохранены, я попробовал и другие варианты, которые в настоящее время я не могу вспомнить, но они не помогли ... – erez

+0

Я откатил ваше редактирование. Если вы переходите к длине редактирования своего вопроса, добавьте содержательную информацию/вопрос в главный вопрос. Не просто добавьте строку, в основном говоря «_please ответьте на мой другой вопрос в комментарии». – Hoki

ответ

0

Вы можете пропустить все оси и позвонить getframe, чтобы получить только эти оси. Затем вы можете сохранить cdata, используя imwrite.

% Get a list of all axes in the figure 
allax = findall(gcf, 'type', 'axes'); 

for k = 1:numel(allax) 
    % Get the axes as an image 
    fr = getframe(allax(k)); 

    % Save the image 
    imwrite(fr.cdata, sprintf('%d.png')); 
end 

Если у вас уже есть оси ручки вы можете просто использовать те, кто непосредственно

fr = getframe(axes2); 
imwrite(fr.cdata, 'axes2.png') 

fr = getframe(axes1); 
imwrite(fr.cdata, 'axes1.png') 

Если вы хотите включить X и Y осей этикетки, вы могли бы сделать что-то вроде

function axes2image(ax, filename) 

    hfig = ancestor(ax, 'figure'); 

    rect = hgconvertunits(hfig, get(ax, 'OuterPosition'), ... 
          get(ax, 'Units'), 'pixels', get(ax, 'Parent')); 

    fr = getframe(hfig, rect); 
    imwrite(fr.cdata, filename); 
end 

axes2image(axes2, 'axes2.png') 
axes2image(axes1, 'axes1.png') 
+0

Спасибо, но 2 вопроса: – erez

+0

1. Как я могу узнать, что является axes1 \ axes2 и т. Д. – erez

+0

2. Я хочу видеть также значения осей X и Y. другой вопрос - могу ли я определить путь к файлу? (Я хочу, чтобы он был введен пользователем) – erez

Смежные вопросы