MATLAB如何获取鼠标点击坐标
我已经使用GUIDE制作了我的GUI。我有一个轴(tag=axes1)。图像显示在轴中。 当我点击图像(轴内)时,我需要获得坐标。MATLAB如何获取鼠标点击坐标,matlab,user-interface,axes,Matlab,User Interface,Axes,我已经使用GUIDE制作了我的GUI。我有一个轴(tag=axes1)。图像显示在轴中。 当我点击图像(轴内)时,我需要获得坐标。 当图像未添加到轴时,我获取坐标值。但图像显示在轴中,不获取轴。如何获取坐标?您可以通过以下方式从图像句柄获取轴句柄: ah = get( imageHandle, 'Parent' ); 然后您可以通过 p = get( ah, 'CurrentPoint' ); 让我们假设您已经使用handleimageHandle绘制了图像: imageHandle = i
当图像未添加到轴时,我获取坐标值。但图像显示在轴中,不获取轴。如何获取坐标?您可以通过以下方式从图像句柄获取轴句柄:
ah = get( imageHandle, 'Parent' );
然后您可以通过
p = get( ah, 'CurrentPoint' );
让我们假设您已经使用handle
imageHandle
绘制了图像:
imageHandle = imshow(imageObj);
您应该将按钮DOWNFCN
指定给图像句柄,而不是轴句柄:
set(imageHandle,'ButtonDownFcn',@ImageClickCallback);
并从该函数中获取鼠标坐标,如下所示:
function ImageClickCallback ( objectHandle , eventData )
axesHandle = get(objectHandle,'Parent');
coordinates = get(axesHandle,'CurrentPoint');
coordinates = coordinates(1,1:2);
%// then here you can use coordinates as you want ...
end
您可以尝试这个小的演示来检查我的答案:
function demoOnImageClick
clc;clear;
imObj = rand(500,500);
figure;
hAxes = axes();
imageHandle = imshow(imObj);
set(imageHandle,'ButtonDownFcn',@ImageClickCallback);
function ImageClickCallback ( objectHandle , eventData )
axesHandle = get(objectHandle,'Parent');
coordinates = get(axesHandle,'CurrentPoint');
coordinates = coordinates(1,1:2);
message = sprintf('x: %.1f , y: %.1f',coordinates (1) ,coordinates (2));
helpdlg(message);
end
end
@HelloASP,如果满足您对问题的要求,您可以接受答案以结束此问题的讨论。@HelloASP请确保检查Sameh的答案是否正确。谢谢你的例子。可能会用
imagesc
替换imshow
,因为并非所有Matlab用户都有此功能。