Matlab imellipse:如何选择活动椭圆并将其删除在图像上

时间:2015-04-24 13:19:21

标签: image matlab user-interface geometry draggable

我正在尝试编写一个允许用户

的GUI

1)按下Add Circle按钮后创建尽可能多的可拖动圆圈

我设计了如下功能。每当我点击“添加”时,它会在图像上插入固定大小的圆圈。按钮。我也计算了按钮命中数(如果我将它用作循环索引)

function Add_Callback(hObject, eventdata, handles)
% hObject    handle to Add (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)   

diameter = 30;   

    handles.trap = imellipse(gca,[100, 100, diameter, diameter]);
    addNewPositionCallback(handles.trap ,@(p) title(mat2str(p,3)));
    fcn = makeConstrainToRectFcn('imellipse',get(gca,'XLim'),get(gca,'YLim'));
    setFixedAspectRatioMode(handles.trap,'True');
    setPositionConstraintFcn(handles.trap,fcn);
    wait(handles.trap);

handles.count = handles.count+1
guidata(hObject, handles);

2)将它们拖动到所需位置 - 由Matlab自动完成:)

3)选择活动圈(例如set_as_Active函数) - 这是问题所在。

4)使用按钮(例如Delete_Circle)或双击(如果可能)删除用户认为不需要的那个

由于我无法选择活动圈,当我点击删除时,它会删除更新的句柄对象,并在下次出错时。

delete(handles.trap);
guidata(hObject, handles);

我使用了imellipse函数来添加可拖动的圆圈。但是,我无法更新圆圈的位置并选择所需的圆圈作为活动。我怎么能这样做?

感谢您的帮助。

0 个答案:

没有答案