exponenta event banner

imfreehand

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

imfreehand не рекомендуется. Использовать новый Freehand Вместо этого объект ROI. Также можно использовать новую функцию удобства создания ROI. drawfreehand. Другой вариант - AssistedFreehand объект, который позволяет вручную нарисовать фигуру, которая автоматически следует за краями на нижележащем изображении. Дополнительные сведения см. в разделе Вопросы совместимости.

Описание

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

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

Создание

Описание

пример

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

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

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

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

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

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

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

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

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

Область Freehand замкнута, задана как разделенная запятыми пара, состоящая из 'Closed' и true или false. Если установлено значение true (по умолчанию), imfreehand рисует прямую линию, соединяющую конечные точки прямой линии для создания замкнутой области. Если установлено значение false, imfreehand оставляет регион открытым.

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

Свойства

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

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

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

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

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

Область freehand также поддерживает контекстное меню, которое можно использовать для управления аспектами ее внешнего вида и поведения.

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

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

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

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

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

Примеры

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

Разместите в интерактивном режиме закрытую интересующую область, щелкнув и перетащив изображение.

imshow('pout.tif')
h = imfreehand;   

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

position = wait(h); 

Совет

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

  • Для отмены интерактивного размещения нажмите клавишу Esc. imfreehand возвращает пустой объект.

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

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

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

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