将句柄传递给匿名函数

时间:2015-08-06 20:43:32

标签: matlab user-interface callback matlab-guide

我非常依赖于这段代码,我正在尝试注册某人点击图片的位置(在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]。' 长话短说,任何有关如何使用这些方法的帮助都会很棒,我真的很困难。感谢。

0 个答案:

没有答案