我想在 Matlab 图中单击并找出单击位置的 x 和 y 位置。
在图表中,我认为有一种方法可以单击线上的一个点并获取它的 x 和 y 坐标。如果没有绘制图表,我该怎么做?
我想在 Matlab 图中单击并找出单击位置的 x 和 y 位置。
在图表中,我认为有一种方法可以单击线上的一个点并获取它的 x 和 y 坐标。如果没有绘制图表,我该怎么做?
这是最优雅的方法:
function test
% create test figure
f = figure(1);
% set function to call on mouse click
set(f, 'WindowButtonDownFcn', @clicker);
end
% function called on mouse click in the figure
function clicker(h,~)
get(h, 'selectiontype')
% 'normal' for left moue button
% 'alt' for right mouse button
% 'extend' for middle mouse button
% 'open' on double click
get(h, 'currentpoint')
% Current mouse location, in pixels from the lower left.
% When the units of the figure are 'normalized', the
% coordinates will be [0 0] inb lower left, and [1 1] in
% the upper right.
end
也许这也可以:
function [loc] = get_image_point (I)
figure('name','Doubleclick to set location');imshow(I);
[c r] = getpts(1);
loc = int32([c r]);
if size(loc,1)>1
loc = [loc(1,1) loc(1,2)];
end
close all;
end
斯蒂芬
注: - getpts()
- 是“图像处理工具箱”功能。- ginput()
- 等待您的鼠标单击,在您单击之前暂停执行,并且仅在调用时才有效。
而get(h, 'currentpoint')
只要您的程序正在运行,它就可以随时工作。