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 функция для получения информации о допустимых указателях на функцию.

Область от руки закрывается в виде разделенной запятой пары, состоящей из '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 возвращает пустой объект.

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

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

Не рекомендуемый запуск в R2018b

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