我一直在使用指南做了我的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