exponenta event banner

imrect

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

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

Описание

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

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

Создание

Описание

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

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

пример

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

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

Входные аргументы

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

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

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

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

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

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

Свойства

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

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

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

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

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

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

Интерактивное поведениеОписание
Перемещение прямоугольника.Переместите указатель внутрь прямоугольника. Указатель принимает форму флера. Щелкните и перетащите мышь, чтобы переместить прямоугольник.
Изменение размера прямоугольника. Переместите указатель на любую из кромок или углов прямоугольника, форма изменится на двойную стрелку,. Щелкните и перетащите ребро или угол с помощью мыши.
Изменение цвета прямоугольника.Переместите указатель внутрь прямоугольника. Щелкните правой кнопкой мыши и выберите в контекстном меню «Задать цвет».
Получение координат текущего положенияПереместите указатель внутрь полигона. Щелкните правой кнопкой мыши и выберите «Копировать положение» в контекстном меню. imrect копирует четырехэлементный вектор положения в буфер обмена.
Сохранение текущего соотношения сторон прямоугольника во время интерактивного изменения размеров. Переместите указатель внутрь прямоугольника. Щелкните правой кнопкой мыши и выберите в контекстном меню «Зафиксировать пропорции».
Удаление прямоугольникаПереместите указатель внутрь прямоугольника или на кромку прямоугольника. Щелкните правой кнопкой мыши и выберите в контекстном меню команду «Удалить». Чтобы удалить этот параметр из контекстного меню, установите Deletable свойство false: h = imrect(); h.Deletable = false;

При использовании setResizeable чтобы сделать прямоугольник неизменяемым, не предоставляется пункт контекстного меню «Зафиксировать соотношение сторон».

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

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

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

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

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

Не рекомендуется начинать с R2018b

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