Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB如何获取鼠标点击坐标_Matlab_User Interface_Axes - Fatal编程技术网

MATLAB如何获取鼠标点击坐标

MATLAB如何获取鼠标点击坐标,matlab,user-interface,axes,Matlab,User Interface,Axes,我已经使用GUIDE制作了我的GUI。我有一个轴(tag=axes1)。图像显示在轴中。 当我点击图像(轴内)时,我需要获得坐标。 当图像未添加到轴时,我获取坐标值。但图像显示在轴中,不获取轴。如何获取坐标?您可以通过以下方式从图像句柄获取轴句柄: ah = get( imageHandle, 'Parent' ); 然后您可以通过 p = get( ah, 'CurrentPoint' ); 让我们假设您已经使用handleimageHandle绘制了图像: imageHandle = i

我已经使用GUIDE制作了我的GUI。我有一个轴(tag=axes1)。图像显示在轴中。 当我点击图像(轴内)时,我需要获得坐标。
当图像未添加到轴时,我获取坐标值。但图像显示在轴中,不获取轴。如何获取坐标?

您可以通过以下方式从图像句柄获取轴句柄:

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用户都有此功能。