MATLAB如何让鼠标点击坐标(MATLAB how to get mouse click coor

2019-07-19 05:21发布

我一直在使用指南做了我的GUI。 我有一个轴(标记= axes1)。 的图像被显示在轴。 当我在图像上单击(内轴),我需要得到的坐标。 我得到的图像时不添加到axes.But图像显示在轴上做没有得到轴的坐标值。 如何获得的坐标?

Answer 1:

让我们假设你已经绘制带手柄的图像imageHandle是:

imageHandle = imshow(imageObj);

您应该分配ButtonDownFcn到图像处理不轴搞定:

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


Answer 2:

你可以得到轴从图像处理的处理

ah = get( imageHandle, 'Parent' );

然后,你可以通过鼠标点击位置

p = get( ah, 'CurrentPoint' );


文章来源: MATLAB how to get mouse click coordinates