(Не рекомендуется) Создание перетаскиваемого эллипса
imellipse не рекомендуется. Используйте Ellipse Вместо этого объект ROI. Также можно использовать функцию удобства создания ROI drawellipse. Если вы использовали imellipse для создания круговой окупаемости инвестиций используйте Circle Вместо этого объект ROI. Дополнительные сведения см. в разделе Вопросы совместимости.
Один imellipse объект инкапсулирует интерактивный эллипс поверх изображения.
Размер и положение эллипса можно настроить с помощью мыши. Эллипс также имеет контекстное меню, которое управляет аспектами его внешнего вида и поведения. Дополнительные сведения см. в разделе Использование.
h = imellipse начинает интерактивное размещение эллипса на текущих осях и возвращает imellipse объект.
h = imellipse( начинает интерактивное размещение эллипса на объекте, указанном hparent)hparent.
h = imellipse(___, задает пары имя-значение, которые управляют поведением эллипса.Name,Value)
При звонке 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 автоматически расширяются границы осей, чтобы приспособиться к перемещению эллипса.