2016-08-15 4 views
2

이 문제와 관련하여 많은 답변을 얻었지만 어떤 것도 찾지 못했습니다. MATLAB에 GUI가 2 축 있고 별도로 저장하려고합니다. 각 축은 .jpeg 또는 다른 형식으로 표시됩니다. 어떤 방법 으로든 시도해 보았습니다. 모든 GUI 또는 컷 그림이 포함 된 이미지를 얻었습니다. 좋은 이미지를 어떻게 얻을 수 있습니까?축을 GUI로 이미지 저장 MATLAB

+0

나는 같은 것을 할 수있는 사람들을 사용할 수 있습니다 처리 그림을 열고 copyobj를 누른 다음 saveas를 시도했지만 이미지가 잘리지 않았습니다. – erez

+0

savefig도하려고했는데이 경우 모든 그림이 저장되었지만 현재 기억할 수없는 또 다른 옵션을 시도했지만 도움이되지 않았습니다 ... – erez

+0

나는 편집을 롤백했습니다. 질문을 편집 할 수있는 기간이되면 주요 질문 게시판에 의미있는 정보/질문을 추가하십시오. 기본적으로 "_ 내 질문에 대답 해주세요"라는 줄을 추가하지 마십시오. – Hoki

답변

0

모든 축을 순환하여 getframe을 호출하여 해당 축을 얻을 수 있습니다. imwrite을 사용하여 cdata을 저장할 수 있습니다.

% 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 

이미 축이있는 경우 당신은 당신이 X를 포함 할 및 Y 레이블을 축 경우 직접

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

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

, 당신은

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. 어떻게 ax1 \ axes2 등인지 알 수 있습니까? – erez

+0

2. 나는 또한 X 축과 Y 축의 값을보고 싶습니다. 또 다른 질문 - 파일 경로를 정의 할 수 있습니까? (사용자 입력이 필요합니다.) – erez

관련 문제