我非常依赖于这段代码,我正在尝试注册某人点击图片的位置(在GUI中的轴上)。现在我正在用鼠标点击鼠标:
imageHandle = imshow(movImg,'parent',handles.axes1);
set(imageHandle,'ButtonDownFcn',@imageClickCallback);
function imageClickCallback(objectHandle,eventData)
axesHandle = get(objectHandle,'Parent');
coordinates = get(axesHandle,'CurrentPoint');
disp(coordinates);
X = coordinates(1);
Y = coordinates(2);
%handles.markedFrames(handles.markedIndex).x = X;
%handles.markedFrames(handles.markedIndex).y = Y;
%%Increment the index were on in the marked list
%handles.markedIndex = handles.markedIndex +1;
%guidata(objectHandle,handles);
问题是我希望能够将每次点击的坐标存储到一个数组中,该数组能够传递给我GUI的所有回调。我尝试将句柄作为匿名函数的参数但它确实不起作用,我尝试了全局,但它们变得非常混乱,我还尝试创建另一个整体函数作为一种不同的方法:
function clickerCall(handles)
handles.markedFrames(50) = struct('x',[],'y',[],'frame',[]);
handles.markedIndex = 1;
[handles.markedFrames(handles.markedIndex).x,handles.markedFrames(handles.markedIndex).y] = getpts(handles.axes1);
handles.markedIndex = handles.markedIndex+1;
disp([handles.markedFrames.x]);
updateAxes(handles);
这也很棘手,因为我不知道从哪里调用它,我也一直收到错误:'试图访问pt(1,1);索引越界,因为size(pt)= [0,0]。' 长话短说,任何有关如何使用这些方法的帮助都会很棒,我真的很困难。感谢。