【发布时间】:2016-12-10 22:25:12
【问题描述】:
我想从正在显示的图像中获取矩形坐标。我想移动图像下一个和后退。这是我的 MATLAB GUI:
所以当我按下 Next 时,它应该会显示系列中的下一张图像,Back 按钮也是如此。我正在使用此代码:
function next_Callback(hObject, eventdata, handles)
% hObject handle to next (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
if handles.mypointer ~= length(handles.cur_images)
handles.mypointer = handles.mypointer + 1;
pic = imread(fullfile('images', handles.cur_images(handles.mypointer).name));
handles.imageName=handles.cur_images(handles.mypointer).name;
imshow(pic);
h = imrect;
getMyPos(getPosition(h));
addNewPositionCallback(h, @(p) getMyPos(p));
fcn = makeConstrainToRectFcn('imrect', get(gca, 'XLim'), get(gca, 'YLim'));
setPositionConstraintFcn(h, fcn);
handles.output = hObject;
handles.posi = getPosition(h);
guidata(hObject, handles);
但是这段代码的缺点是当 Next 按钮被按下时它会停在h=imrect,所以等待用户绘制一个矩形。如果我不画一个矩形,它什么也做不了。即使我再次按下 Back 或 Next 按钮,它也不会执行任何操作,因为它仍在等待用户绘制矩形。
如何不让程序停在imrect?
【问题讨论】:
-
为
imrect制作一个单独的按钮...
标签: matlab user-interface callback