我想点击一个Matlab图,找出点击位置的x和y位置。
在图表中,我认为有一种方法可以点击线上的点并获得它的x和y坐标。如果没有绘制图表,我该怎么做呢?
答案 0 :(得分:6)
以下是如何最优雅地完成这项工作:
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
答案 1 :(得分:5)
答案 2 :(得分:1)
也许这也有用:
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
斯蒂芬
答案 3 :(得分:0)
注意:
- getpts()
- 是一个“图像处理工具箱”功能。
- ginput()
- 等待你的鼠标点击,暂停执行直到你点击,并且仅在被叫时才有效。
而get(h, 'currentpoint')
只要您的程序正在运行,就可以随时使用。