imrect

(Не рекомендуемый) Создать перетаскиваемый прямоугольник

imrect не рекомендуется. Используйте новую Rectangle Вместо этого объект информация только для чтения. Вы также можете использовать новую функцию ROI удобства drawrectangle. Для получения дополнительной информации см. раздел Вопросов совместимости.

Описание

Система координат imrect объект инкапсулирует интерактивный прямоугольник над изображением.

Размер и положение прямоугольника можно настроить при помощи мыши. Прямоугольник также имеет контекстное меню, которое управляет аспектами его внешнего вида и поведения. Для получения дополнительной информации см. раздел Использование.

Создание

Описание

h = imrect начинает интерактивное размещение прямоугольника на текущей системе координат и возвращает imrect объект.

h = imrect(hparent) начинается интерактивное размещение прямоугольника на объекте, заданном hparent.

пример

h = imrect(hparent,position) создает перетаскиваемый прямоугольник в положении position на объекте, заданном как hparent.

h = imrect(___,Name,Value) задает пары "имя-значение", которые управляют поведением прямоугольника.

Входные параметры

расширить все

Указатель на родительский объект, заданный как указатель. Родительским элементом обычно является объект осей, но может также быть любой другой объект, который может быть родительским элементом an hggroup объект.

Положение прямоугольника, заданное как 4-элементный вектор вида [xmin ymin width height]. Начальный размер прямоугольника width-by- height, и верхний левый угол прямоугольника находится в координате (x, y) (xmin, ymin).

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Функция ограничения положения, заданная как разделенная разделенными запятой парами, состоящая из 'PositionConstraintFcn' и указатель на функцию. fcn вызывается каждый раз, когда мышь перетаскивается. Можно использовать эту функцию для управления, куда можно перетащить прямоугольник. Смотрите справку для setPositionConstraintFcn для получения информации о действительных указателях на функцию.

Свойства

расширить все

Информация только для чтения можно удалить, задав как true или false.

Типы данных: logical

Использование

Когда вы звоните imrect с интерактивным синтаксисом, указатель изменяется на перекрестие при наведении изображения. Можно создать прямоугольник и настроить его размер и положение с помощью мыши. Прямоугольник также поддерживает контекстное меню, которое можно использовать для управления аспектами его внешнего вида и поведения. Щелкните правой кнопкой по прямоугольнику, чтобы получить доступ к этому контекстному меню.

В таблице перечислены интерактивные модели поведения, поддерживаемые imrect.

Интерактивное поведениеОписание
Перемещение прямоугольника.Переместите указатель в прямоугольник. Указатель изменяется на гибкую форму. Щелкните мышью и перетащите мышь, чтобы переместить прямоугольник.
Изменение размера прямоугольника. Наведите указатель мыши на любую из ребер или углов прямоугольника, форма изменяется на двойную стрелу. Щелкните и перетащите ребро или угол мышью.
Изменение цвета прямоугольника.Переместите указатель в прямоугольник. Щелкните правой кнопкой мыши и выберите Set Color из контекстного меню.
Получение координат текущей позицииПереместите указатель мыши внутрь многоугольника. Щелкните правой кнопкой мыши и выберите Copy Position из контекстного меню. imrect копирует вектор положения с четырьмя элементами в буфер обмена.
Сохраните текущее соотношение сторон прямоугольника во время интерактивного изменения размера. Переместите указатель в прямоугольник. Щелкните правой кнопкой мыши и выберите Fix Aspect Ratio из контекстного меню.
Удаление прямоугольникаПереместите указатель в прямоугольник или на ребро прямоугольника. Щелкните правой кнопкой мыши и выберите Delete из контекстного меню. Чтобы удалить эту опцию из контекстного меню, установите Deletable свойство false: h = imrect(); h.Deletable = false;

Когда вы используете setResizeable чтобы сделать прямоугольник несоизмеримым, Fix Aspect Ratio элемент контекстного меню не предусмотрен.

Функции объекта

Каждый imrect объект поддерживает ряд функций. Тип methods imrect чтобы увидеть полный список.

addNewPositionCallbackДобавьте коллбэк с новой позицией к объекту информация только для чтения
createMaskСоздайте маску в изображении
deleteУдалить указатель объекта
getColorПолучите цвет, используемый для рисования объекта информация только для чтения
getPositionВозврат текущей позиции объекта информация только для чтения
getPositionConstraintFcnВозвращает указатель на функцию ограничения текущего положения
removeNewPositionCallbackУдалите коллбэк с новой позицией из объекта информация только для чтения
resume(Не рекомендуемый) Возобновить выполнение командной строки MATLAB
setColorУстановите цвет, используемый для рисования объекта информация только для чтения
setConstrainedPositionУстановите объект информация только для чтения в новое положение
setFixedAspectRatioModeСохраните соотношение сторон при изменении размера объекта информация только для чтения
setPosition(Не рекомендуемый) Переместить объект информация только для чтения в новое положение
setPositionConstraintFcnУстановите функцию ограничения положения объекта информация только для чтения
setResizableУстановите поведение изменения размера объекта информация только для чтения
wait(Не рекомендуемый) Блокируйте командную строку MATLAB до завершения создания информация только для чтения

Примеры

Обновление заголовка при перемещении прямоугольника

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

imshow('cameraman.tif')
h = imrect(gca,[10 10 100 100]);
addNewPositionCallback(h,@(p) title(mat2str(p,3)));

Задайте функцию ограничения положения, используя makeConstrainToRectFcn чтобы сохранить прямоугольник внутри исходного XLim и YLim области значений изображения.

fcn = makeConstrainToRectFcn('imrect',get(gca,'XLim'),get(gca,'YLim'));
setPositionConstraintFcn(h,fcn); 

Теперь перетащите прямоугольник мышью. Обратите внимание, что прямоугольник больше не может проходить за границу изображения.

Щелкните и перетащите мышью, чтобы разместить прямоугольник

В интерактивном режиме разместите прямоугольник нажатием и перетаскиванием. Использовать wait чтобы заблокировать MATLAB® командная строка. Дважды кликните прямоугольник, чтобы возобновить выполнение командной строки MATLAB.

imshow('pout.tif');
h = imrect;
position = wait(h);

Совет

Если вы используете imrect с помощью оси, которая содержит объект изображения и не задает функцию ограничения положения, пользователи могут перетащить прямоугольник за пределы изображения. При использовании с осями, созданными plot функция, пределы осей автоматически расширяются, чтобы соответствовать перемещению прямоугольника.

Вопросы совместимости

расширить все

Не рекомендуемый запуск в R2018b

Представлено до R2006a