2016-10-12 3 views
0

이미지를 클릭 한 후 커서 위치를 가져와 해당 픽셀 좌표를 가져와야합니다. 이것은 그림의 빈 부분을 클릭하면 작동합니다 (이미지를 클릭하면 콜백이 트리거되지 않음).Matlab을 사용하여 이미지의 커서 위치를 얻는 방법

image(my_image); 
set(gca, 'ButtonDownFcn', @click); 

function click(o, event) 
    pt = get(o, 'CurrentPoint') 
end 

그래서 그 후, 나는이 하나의 시도 :

image(my_image, 'ButtonDownFcn', @click); 

function click(o, event) 
    pt = get(o, 'CurrentPoint') 
end 

을하지만, 이미지 클래스는 '현재 점'라는 이름의 필드를 포함하지 않음을 알려줍니다. 이미지에서 어떤 종류의 축을 가져와야 할 필요가 있다고 생각하지만, 어떻게 해야할지 모르겠습니다.

답변

0

전에 비슷한 문제를 해결해야했습니다.

커서 위치

function figure1_WindowButtonMotionFcn(~, ~, ~) 

을 추적합니다 다음과 같은 GUI를 같이 빈 콜백을 추가하는 경우 그런 다음 그림 1 핸들이 마우스의 위치를 ​​설명합니다 속성 currentPoint이 있어야합니다. 이 같은 그림 1 핸들에 접근, 무언가가 클릭 이벤트 함수를 작성하는 경우 :

image(my_image, 'ButtonwDownFcn', ... 
    @(hObject,eventdata)myGui('click',hObject,eventdata,guidata(hObject)) 

mouseLocation = get(handles.figure1, 'currentPoint'); 

그런 다음 당신이해야 마우스 위치에 액세스하는 데에 다음 줄을 포함 그림 내의 축의 위치를 ​​사용하여 마우스 위치를 픽셀 위치로 변환합니다.

0

글쎄, 내 문제에 대한 해결책을 찾았습니다. 이미지에 축을 지정하고 'Parent'속성을 통해 가져와야합니다.

im = image(0, 0, my_image); 
set(im, 'ButtonDownFcn', @click); 

function click(o, event) 
    pt = get(get(o, 'Parent'), 'CurrentPoint') 
end 
관련 문제