(Не рекомендуется) Создать перетаскиваемую свободную область
imfreehand не рекомендуется. Использовать новый Freehand Вместо этого объект ROI. Также можно использовать новую функцию удобства создания ROI. drawfreehand. Другой вариант - AssistedFreehand объект, который позволяет вручную нарисовать фигуру, которая автоматически следует за краями на нижележащем изображении. Дополнительные сведения см. в разделе Вопросы совместимости.
Один imfreehand объект инкапсулирует интерактивную область свободного владения над изображением.
С помощью мыши можно добавить вершины и настроить размер и положение многоугольника. Полигон также имеет контекстное меню, которое управляет аспектами его внешнего вида и поведения. Дополнительные сведения см. в разделе Использование.
h = imfreehand начинает интерактивное размещение произвольной области на текущих осях и возвращает imfreehand объект.
h = imfreehand( начинает интерактивное размещение произвольной области на объекте, указанном hparent)hparent.
h = imfreehand(___, задает пары «имя-значение», которые управляют поведением области свободного имени.Name,Value)
При звонке 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 |
Разместите в интерактивном режиме закрытую интересующую область, щелкнув и перетащив изображение.
imshow('pout.tif')
h = imfreehand;
В интерактивном режиме переместите свободную область щелчком мыши и перетаскиванием. Используйте wait для блокирования командной строки MATLAB ®. Дважды щелкните по свободной области, чтобы возобновить выполнение командной строки MATLAB.
position = wait(h);
Если вы используете imfreehand с осями, содержащими объект изображения, и не задающими функцию ограничения положения, пользователи могут перетаскивать область свободного тела за пределы изображения и терять область свободного имени. При использовании с осями, созданными plot функция, границы осей автоматически расширяются, чтобы приспособиться к перемещению области свободного тела.
Для отмены интерактивного размещения нажмите клавишу Esc. imfreehand возвращает пустой объект.