(Не рекомендуемый) Создать перетаскиваемую область freehand
imfreehand
не рекомендуется. Используйте новую Freehand
Вместо этого объект информация только для чтения. Можно также использовать новую функцию удобства создания информация только для чтения drawfreehand
. Другая опция является AssistedFreehand
объект, который позволяет вам нарисовать вручную форму, которая автоматически следует за ребрами на базовом изображении. Для получения дополнительной информации см. раздел Вопросов совместимости.
Система координат imfreehand
объект инкапсулирует интерактивную область freehand над изображением.
Можно добавить вершины и настроить размер и положение многоугольника при помощи мыши. Многоугольник также имеет контекстное меню, которое управляет аспектами его внешнего вида и поведения. Для получения дополнительной информации см. раздел Использование.
h = imfreehand
начинает интерактивное размещение области freehand на текущей системе координат и возвращает imfreehand
объект.
h = imfreehand(
начинает интерактивное размещение области freehand на объекте, заданном hparent
)hparent
.
h = imfreehand(___,
задает пары "имя-значение", которые управляют поведением области freehand.Name,Value
)
Когда вы звоните imfreehand
с интерактивным синтаксисом, указатель изменяется на перекрестие при расположении над изображением. Щелкните мышью и перетащите мышь, чтобы нарисовать область freehand и настроить положение области. По умолчанию imfreehand
рисует прямую линию, соединяющую последнюю точку, которую вы нарисовали с первой точкой, но можно управлять этим поведением с помощью Closed
параметр.
Область freehand также поддерживает контекстное меню, которое можно использовать для управления аспектами ее внешнего вида и поведения.
В таблице перечислены интерактивные функции, поддерживаемые imfreehand
.
Интерактивное поведение | Описание |
---|---|
Перемещение области. | Переместите указатель мыши внутрь области freehand. Указатель изменяется на гибкую форму. Нажмите и удерживайте левую кнопку мыши, чтобы переместить область. |
Изменение цвета, используемого для рисования области. | Переместите указатель мыши внутрь области freehand. Щелкните правой кнопкой мыши и выберите Set Color из контекстного меню. |
Получение текущего положения области freehand. | Переместите указатель мыши внутрь области freehand. Щелкните правой кнопкой мыши и выберите Copy Position из контекстного меню. imfreehand копирует n -by-2 массив координат на контуре информация только для чтения в буфер обмена . |
Удаление области | Переместите указатель внутрь области. Щелкните правой кнопкой мыши и выберите Delete из контекстного меню. Чтобы удалить эту опцию из контекстного меню, установите Deletable свойство false: h = imfreehand(); h.Deletable = false; |
Каждый imfreehand
объект поддерживает несколько методов. Тип methods imfreehand
чтобы увидеть полный список.
addNewPositionCallback | Добавьте коллбэк с новой позицией к объекту информация только для чтения |
createMask | Создайте маску в изображении |
delete | Удалить указатель объекта |
getColor | Получите цвет, используемый для рисования объекта информация только для чтения |
getPosition | Возврат текущей позиции объекта информация только для чтения |
getPositionConstraintFcn | Возвращает указатель на функцию ограничения текущего положения |
removeNewPositionCallback | Удалите коллбэк с новой позицией из объекта информация только для чтения |
resume | (Не рекомендуемый) Возобновить выполнение командной строки MATLAB |
setClosed | Установите поведение замыкания информации только для чтения объекта |
setColor | Установите цвет, используемый для рисования объекта информация только для чтения |
setConstrainedPosition | Установите объект информация только для чтения в новое положение |
setPositionConstraintFcn | Установите функцию ограничения положения объекта информация только для чтения |
wait | (Не рекомендуемый) Блокируйте командную строку MATLAB до завершения создания информация только для чтения |
В интерактивном режиме разместите закрытую необходимую область freehand, нажав и перетащив изображение.
imshow('pout.tif')
h = imfreehand;
В интерактивном режиме перемещайте область freehand нажатием и перетаскиванием мыши. Используйте wait
функция для блокировки MATLAB® командная строка. Дважды кликните область freehand, чтобы возобновить выполнение командной строки MATLAB.
position = wait(h);
Если вы используете imfreehand
с помощью оси, которая содержит объект изображения и не задает функцию ограничения положения, пользователи могут перетащить область freehand вне области изображения и потерять область freehand. При использовании с осями, созданными plot
функция, пределы осей автоматически расширяются, чтобы соответствовать перемещению области freehand.
Для отмены интерактивного размещения нажмите клавишу Esc. imfreehand
возвращает пустой объект.