imrect

Создайте перемещаемый прямоугольник

imrect не рекомендуется. Используйте drawrectangle вместо этого.

Описание

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

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

Создание

Синтаксис

h = imrect
h = imrect(hparent)
h = imrect(hparent,position)
h = imrect(___,Name,Value)

Описание

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

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

пример

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

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

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

развернуть все

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Свойства

развернуть все

ROI может быть удален, задан как true или false.

Типы данных: логический

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

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

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

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

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

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

Каждый imrect поддержка объектов много методов. Введите methods imrect, чтобы видеть полный список.

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

Примеры

Обновите Заголовок когда Прямоугольные Перемещения

Отобразите прямоугольный ROI по изображению. Отобразите положение прямоугольника в заголовке. Заголовок обновляет, когда вы перемещаете прямоугольник. Попытайтесь перетащить одну сторону прямоугольника вне контура изображения.

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, пределы осей автоматически расширяются, чтобы разместить перемещение прямоугольника.

Смотрите также

| | | | | |

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