2013-09-26 3 views
1

내가해야 할 일은 imfreehand을 사용하여 MATLAB 내에서 많은 ROI를 미리 정의한 다음이 ROI를 스크립트에 넣는 것입니다. 이것은 정말로 그 이름을 지을 수 있고 그리기 만하면 될만큼 어렵지 않습니다. 그러나 내가 잃어버린 것은 ROIS를 재정의 할 필요없이 스크립트 내에서 ROI를 저장하는 방법입니다.스크립트에서 불필요한 ROI 절약

기본적으로 스크립트에 ROI를 저장하려면 어떻게해야합니까?

답변

0

먼저 그리는 모든 선의 x, y 좌표에 액세스 할 수 있습니다. imfreehand으로 전화 할 때 핸들을 저장하고 그린을 사용하여 x, y 데이터에 액세스합니다.

hf = imfreehand; 
% draw line, maybe insert pause here 
hl = findobj(hf,'Type','line','Tag','top line'); 
x = get(hl,'XData'); 
y = get(hl,'YData'); 

그럼 당신은 당신이 스크립트에 넣을 수 있습니다 문자열로 변수를 저장하는`mat2str2를 사용할 수 있습니다

>> x = 1:10; 
>> sprintf('x = %s',mat2str(x)) 
ans = 
x = [1 2 3 4 5 6 7 8 9 10] 

그냥 복사 스크립트로 그. MATLAB의 문서에서

+0

이렇게하면 x 및 y 데이터를 가져올 수 있지만 이것을 스크립트 파일에 넣는 쉬운 방법이 있습니까? 프로그램을 실행할 때마다 50 개의 ROI를 끌어오고 싶지 않기 때문에 스크립트에 imfreehand를 갖고 싶지 않습니다. 이것은 조금 더 나아 졌다고 설명합니까? – Gbru

0

:

figure, imshow('pout.tif'); 
h = imfreehand; 
position = wait(h); %This blocks until finished 

당신은 또한 당신이 하나 개의 변수에 위치의 각 세트를 저장하는 방법에 대한 불구하고 요구하는 생각

pos = getPosition(h) %gets the position 

을 할 수 있습니다. 이를 위해 셀 배열이 가장 편리합니다. 도움이되기를 바랍니다.