Используйте функцию ожидания после рисования информация только для чтения

В этом примере показано, как задать пользовательскую функцию ожидания, которая блокирует командную строку MATLAB ®, пока вы не закончите позиционирование прямоугольника.

Отобразите изображение.

imshow('pears.png')

Нарисуйте прямоугольник информация только для чтения в левом верхнем углу изображения.

h = drawrectangle('Position',[1 1 100 100]);

Используйте пользовательскую функцию ожидания, чтобы заблокировать командную строку MATLAB во время взаимодействия с прямоугольником. Этот пример задает функцию, вызываемую customWait (определено в конце примера).

Пока командная строка заблокирована, измените размер и положение прямоугольника так, чтобы он охватывал одну грушу. Дважды кликните прямоугольник, чтобы возобновить выполнение customWait функция. Функция возвращает окончательное положение прямоугольника.

pos = customWait(h)

pos = 1×4

  262.0000   36.0000  144.0000  145.0000

Это пользовательская функция ожидания, которая блокирует выполнение программы при клике информация только для чтения. Когда вы закончили взаимодействие с информация только для чтения, функция возвращает положение информация только для чтения.

function pos = customWait(hROI)

% Listen for mouse clicks on the ROI
l = addlistener(hROI,'ROIClicked',@clickCallback);

% Block program execution
uiwait;

% Remove listener
delete(l);

% Return the current position
pos = hROI.Position;

end

Функция обратного вызова нажатие кнопки возобновляет выполнение программы при двойном клике по информация только для чтения. Обратите внимание, что данные о событиях передаются в функцию обратного вызова как images.roi.ROIClickedEventData объект, который позволяет вам задать функции обратного вызова, которые отвечают на различные типы действий. Например, вы можете задать функцию обратного вызова, чтобы возобновить выполнение программы, когда вы кликнете информация только для чтения при нажатии клавиши Shift или при клике определенной части информация только для чтения, такой как метка.

function clickCallback(~,evt)

if strcmp(evt.SelectionType,'double')
    uiresume;
end

end

См. также

| | | |

Похожие темы