exponenta event banner

imellipse

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

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

Описание

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

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

Создание

Описание

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

h = imellipse(hparent) начинает интерактивное размещение эллипса на объекте, указанном hparent.

пример

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

h = imellipse(___,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

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

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

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

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

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

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

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

Примеры

Обновить заголовок при перемещении эллипса

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

imshow('coins.png')
h = imellipse(gca,[10 10 100 100]);
addNewPositionCallback(h,@(p) title(mat2str(p,3)));
fcn = makeConstrainToRectFcn('imellipse',get(gca,'XLim'),get(gca,'YLim'));
setPositionConstraintFcn(h,fcn);

Щелкните и перетащите для размещения эллипса

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

imshow('coins.png')
h = imellipse;
position = wait(h);

Совет

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

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

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

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

Представлен в R2007b