5

내 마우스 커서의 좌표를 표시하는 이미지를 얻지 못하고 ginput을 사용하여 동시에 점을 저장하는 것처럼 보일 수 없습니다.좌표를 표시하고 ginput을 사용하는 방법

나는 현재 노력하고 다음

MriHotrod = imread('Image.bmp'); 
Fig = figure('Name','BobDole'),... 
    imshow(Image, 'InitialMagnification', 250) 

axis on 
impixelinfo 

Image_1 = ginput(4) 

close BobDole 

ginput 여전히 작동하지만 impixelinfo가 일정하게 유지

Pixel Info = (X, Y) Pixel Value 

나는이 문제를 가져 오는 몇 가지 방법을 알고 있지만,이 기능을 포함 . 이것은 기능의 사용을 피할 수있는 다소 간단한 문제처럼 보입니다. 당신이 edit ginput을 입력하고 238 틱 라인을 스크롤하면

답변

4

, 당신은 즉

% Adding this to enable automatic updating of currentpoint on the figure 
set(fig,'WindowButtonMotionFcn',@(o,e) dummy()); 

를 볼 수 있습니다, ginput 그림에서 WindowButtonMotionFcn을 설정합니다. 내 생각 엔 impixelinfo도이 기능을 사용하므로 ginput이 호출 되 자마자 비활성화됩니다.

사실, impixelinfoval에서 (함수 impixelinfo에서 사용) 우리는 주변 라인 83 찾을 수 :

callbackID = iptaddcallback(hFig,'WindowButtonMotionFcn', @displayPixelInfo); 

이상한 것은 그 다음입니다 : 어떻게 4 점을 클릭 한 후 다시 나올까요?

이 마법은 ginput 라인 (222) 틱에 의해 이루어집니다

initialState.uisuspendState = uisuspend(fig); 

은 분명히, uisuspend은 나중에 다시 설정하기 위해, 어떤 기존 WindowButton* 기능을 중지하는 데 사용되는 작은 문서화되지 않은 기능입니다. 그래서, 당신은 당신이 원하는 동작을 보려면,이 라인

%initialState.uisuspendState = uisuspend(fig); 

을 주석하고 ginput을 저장하고 모든 일을 다시 할 경우.

처음에는 이러한 기능이 일시 중지되는 이유도 알게 될 것입니다. 이해할 수없는 이유 때문에 두 가지 기능을 사용할 때 모든 것이 느려집니다.

+0

답장을 보내 주셔서 감사합니다. 불행히도 우리의 ginput 함수는 매우 다르며 언급 한 행 중 아무 것도 내 입력 기능에 없습니다. 나는 이것을 주석으로 달기를 시도했다 : state = uisuspend (fig) 이것은 라인 92에 나타난다. 그러나 이것은 작동하지 않았다. – Shinobii

+0

Matlab의 버전은 무엇입니까? –

+0

버전 : 7.10.0 R2010a – Shinobii

관련 문제