imfreehand

Создайте перемещаемую область от руки

imfreehand не рекомендуется. Используйте drawfreehand или drawassisted вместо этого.

Описание

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

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

Создание

Синтаксис

h = imfreehand
h = imfreehand(hparent)
h = imfreehand(___,Name,Value)

Описание

пример

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

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

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

Входные параметры

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

Типы данных: логический

Свойства

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

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

Типы данных: логический

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

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

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

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

Интерактивное поведениеОписание
Перемещение области.Переместите указатель в области от руки. Указатель изменяется на форму fleur. Кликните и удержите левую кнопку мыши, чтобы переместить область.
Изменение цвета раньше чертило область. Переместите указатель в области от руки. Щелкните правой кнопкой и выберите Set Color из контекстного меню.
Получение текущего положения области от руки. Переместите указатель в области от руки. Щелкните правой кнопкой и выберите Copy Position из контекстного меню. imfreehand копирует n-by-2 массив координат на контуре ROI к буферу обмена.
Удаление областиПереместите указатель в области. Щелкните правой кнопкой и выберите Delete из контекстного меню. Чтобы удалить эту опцию из контекстного меню, установите свойство Deletable на ложь: 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 возвращает пустой объект.

Смотрите также

| | | | | | |

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