AssistedFreehand

Необходимая область от руки, которой помогают,

Описание

AssistedFreehand нарисованный от руки объект видимой области (ROI), где линия, проведенная автоматически, следует за ребрами в основном изображении.

Чтобы чертить ROI, расположите указатель на изображение, кликните и выпустите, чтобы поместить первую вершину (waypoint). Затем переместите указатель, чтобы чертить линию. Как вы чертите, линия автоматически следует за ребрами объектов в изображении. Дважды кликните, чтобы закончить ROI. Для получения дополнительной информации об использовании этого ROI, включая горячие клавиши, смотрите Советы.

Создание

Описание

Создать AssistedFreehand объект, используйте images.roi.AssistedFreehand функция создания. После создания объекта вызовите draw возразите функции, чтобы начать чертить. Как удобство, можно также использовать drawassisted функция, чтобы создать AssistedFreehand ROI. drawassisted функция создает объект ROI и вызывает draw возразите функции для вас.

пример

roi = images.roi.AssistedFreehand создает AssistedFreehand объект со свойствами по умолчанию.

roi = images.roi.AssistedFreehand(ax) создает ROI на осях, заданных ax.

roi = images.roi.AssistedFreehand(___,Name,Value) свойства наборов с помощью пар "имя-значение". Например, images.roi.AssistedFreehand('Color','y') выбирает цвет AssistedFreehand возразите против желтого. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки.

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

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

Родительский элемент ROI в виде Axes объект или UIAxes объект. Для получения информации об использовании ROI в UIAxes, включая важные ограничения, смотрите Используя ROI в Приложениях, Созданных с App Designer.

Свойства

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

Закройте ROI от руки в виде логического значения true или false. Если true (значение по умолчанию), Freehand закрывает ROI путем соединения последней точки, чертившей к первой чертившей точке.

Цвет ROI в виде MATLAB® ColorSpec (Color Specification).

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Контекстное меню в виде ContextMenu объект. Используйте это свойство отобразить пользовательское контекстное меню, когда вы щелкнете правой кнопкой по ROI. Можно создать пользовательское контекстное меню при помощи uicontextmenu функционируйте и затем конфигурирующий свойства контекстного меню.

ROI может быть в интерактивном режиме удален через контекстное меню в виде true или false. Когда значением является true (значение по умолчанию), можно удалить ROI через контекстное меню. Чтобы отключить этот элемент контекстного меню, установите это свойство на false. Когда значение установлено к false, можно все еще удалить ROI путем вызова delete функция, задающая указатель на ROI как вход.

Область осей, в которые можно в интерактивном режиме поместить ROI в виде одного из значений в этой таблице.

ЗначениеОписание
'auto'Областью рисунка являются пределы текущей системы координат (значение по умолчанию).
'unlimited'Область рисунка не имеет никакого контура, и ROI могут чертиться или перетаскиваться, чтобы расширить вне пределов осей.
[x,y,w,h]Область рисунка ограничивается прямоугольной областью, начинающейся в (x, y), и расширяющей к ширине w и высота h.

Прозрачность ROI стоит в виде значения числового скаляра в области значений перед [0 1]. Когда значением является 1, поверхность ROI полностью непрозрачна. Когда значением является 0, поверхность ROI абсолютно прозрачна.

Поверхность ROI может получить нажатия кнопки в виде true или false. Когда true (значение по умолчанию), поверхность ROI захватывает клики мыши. Когда false, поверхность ROI не захватывает клики мыши.

Видимость ROI обрабатывает в Children свойство родительского элемента в виде одного из значений в этой таблице.

ЗначениеОписание
'on'Указатель на объект всегда отображается (значение по умолчанию).
'off'Указатель на объект скрыт в любом случае.
'callback' Указатель на объект отображается из коллбэков или функций, вызванных коллбэками, но не из функций, вызванных из командной строки.

Отобразите, на котором можно чертить ROI в виде указателя на Image объект.

Интерактивность ROI в виде одного из значений в этой таблице.

ЗначениеОписание
'all'ROI является полностью межигровым (значение по умолчанию).
'none'ROI не является межигровым, и никакие не перетаскивают точки, отображаются.
'translate'ROI может быть переведен (перемещенный) в области рисунка, но не изменился.
'reshape'ROI может быть изменен, но не переведен.

Метка ROI в виде вектора символов или строка. По умолчанию ROI не имеет никакой метки ('').

Видимость метки ROI в виде одного из этих значений:

ЗначениеОписание
'on'Метка отображается, когда ROI отображается и Label свойство непусто (значение по умолчанию).
'hover'Метка отображается только, когда мышь наводит на ROI.
'off'Метка не отображается.

Ширина ребра ROI в виде положительного числового скаляра в точках. Значением по умолчанию является три раза число точек на экранный пиксель.

Родительский элемент ROI в виде Axes или UIAxes объект. Для получения информации об использовании ROI в UIAxes, включая важные ограничения, смотрите Используя ROI в Приложениях, Созданных с App Designer.

Положение ROI в виде n-by-2 числовой массив формы [x1 y1;...;xn yn], где n является числом точек. Каждая строка задает положение точки, задающей ROI. AssistedFreehand генерирует эти точки, когда вы чертите форму ROI. Чтобы работать с меньшим количеством точек, используйте reduce объектная функция.

Состояние выбора ROI в виде логического значения true или false. Можно также установить это свойство в интерактивном режиме. Например, нажатие на ROI выбирает ROI и устанавливает это свойство на true. Точно так же нажатие клавиши Ctrl и нажатие на ROI отменяют выбор ROI и устанавливают значение этого свойства к false.

Цвет ROI, когда выбрано в виде ColorSpec (Color Specification) MATLAB. Интенсивность должна быть в области значений [0,1]. Если 'SelectedColor' установлен в 'none', затем значение Color задает цвет ROI для всех состояний, выбранных или нет.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Сглаженное ребро ROI во время интерактивного размещения в виде неотрицательного скаляра. AssistedFreehand возразите использует стандартное отклонение Гауссова ядра сглаживания, чтобы отфильтровать x и координаты y ROI. Этот параметр задает размер фильтра с помощью этого уравнения: 2*ceil(2*Smoothing) + 1. Необходимо установить параметр прежде, чем чертить ROI в интерактивном режиме. Вы видите эффект сглаживания только после завершения рисунка.

Цвет ROI чередует в виде ColorSpec (Color Specification) MATLAB значение. По умолчанию ребро ROI твердо окрашенный. Если вы задаете StripeColor, ребро ROI чередуется. Чередование состоит из комбинации значения, заданного 'Color' и это значение.

Пример: 'green'

Пример: 'g'

Пример: [0 1 0]

Пометьте, чтобы сопоставить с ROI в виде вектора символов или строки. Используйте значение тега, чтобы найти объект ROI в иерархии объектов с помощью findobj функция.

Данные, чтобы сопоставить с ROI в виде любых данных MATLAB. Например, можно задать скаляр, вектор, матрицу, массив ячеек, строку, символьный массив, таблицу или структуру. MATLAB не использует эти данные.

Видимость ROI в виде 'on' или 'off', или как числовой или логический 1 (TRUE) или 0 ложь. Значение 'on' эквивалентно истине и 'off' эквивалентно лжи. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

ЗначениеОписание
'on'Отобразите ROI (значение по умолчанию).
'off'Скройте ROI, не удаляя его. Все еще можно получить доступ к свойствам невидимого ROI.

Контрольные точки раньше изменяли ROI в виде n-by-1 логический массив та же длина как Position свойство. Элементы в Waypoints со значением true идентифицируйте точки в Position массив, которые являются waypoints. По умолчанию, AssistedFreehand генерирует все точки, которые задают ROI, и только делает точки в местоположениях увеличенного искривления в waypoints. Можно повернуть все точки или некоторое подмножество точек, в waypoints при помощи кода, похожего на roi.Waypoints(1:4:end) = true;.

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

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

addlistenerСоздайте прослушиватель события, связанный с источником события
beginDrawingFromPointНачните чертить ROI от заданной точки
bringToFrontПеренесите ROI на передний план порядка размещения Осей
createMaskСоздайте бинарный рисунок маски из ROI
drawНачните чертить ROI в интерактивном режиме
inROIЗапросите, расположены ли точки в ROI
reduceУменьшайте плотность точек в ROI
waitБлокируйте командную строку MATLAB, пока операция ROI не будет закончена

Примеры

свернуть все

Считайте изображение в рабочую область и отобразите ее.

 figure;
 imshow(imread('baby.jpg'));

Создайте экземпляр images.roi.AssistedFreehand класс. По умолчанию класс создает ROI на текущей системе координат. Обратите внимание на то, что оси должны содержать изображение.

roi = images.roi.AssistedFreehand;

Вызовите draw метод, задавая AssistedFreehand возразите в качестве аргумента. Указатель превращается в форму перекрестия, когда вы перемещаете его через изображение. Вы можете, будучи чертящими ROI. Отметьте, как, когда вы перемещаете указатель, линия, которую вы проводите, следует за ребрами в основном изображении. Щелкните, чтобы добавить вершины вдоль ребра, как вы чертите.

draw(roi);

Считайте изображение в рабочую область.

I = imread('cameraman.tif');

Отобразите изображение. Используйте imshow синтаксис, который возвращает отображенный объект изображения.

img = imshow(I);

Создайте AssistedFreehand ROI на изображении. Вызовите draw возразите функции, чтобы включить интерактивный рисунок формы ROI. Отметьте, как линия ROI автоматически следует за ребрами в основном изображении.

roi = images.roi.AssistedFreehand(img);
draw(roi)

Настройте прослушиватели для ROI движущиеся события. Когда вы перемещаете его, ROI отправляет уведомления об этих событиях и выполняет функцию обратного вызова, которую вы задаете.

addlistener(roi,'MovingROI',@allevents);
addlistener(roi,'ROIMoved',@allevents);

allevents функция обратного вызова отображает в командной строке предыдущее положение и текущее положение ROI.

function allevents(src,evt)
    evname = evt.EventName;
    switch(evname)
        case{'MovingROI'}
            disp(['ROI moving previous position: ' mat2str(evt.PreviousPosition)]);
            disp(['ROI moving current position: ' mat2str(evt.CurrentPosition)]);
        case{'ROIMoved'}
            disp(['ROI moved previous position: ' mat2str(evt.PreviousPosition)]);
            disp(['ROI moved current position: ' mat2str(evt.CurrentPosition)]);
    end
end

Больше о

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

Советы

  • ROI поддерживает следующую интерактивность, включая горячие клавиши.

    ПоведениеГорячая клавиша
    Отмена, чертящая ROI.Нажмите Esc. Функция возвращает допустимый объект ROI с пустым Position поле .
    Закончите чертить (близко) ROI.

    Дважды кликните, который добавляет точку в позиции указателя и чертит линию, соединяя эту точку с первой чертившей точкой, закрывая ROI.

    Щелкните правой кнопкой, который чертит линию, соединяя последнюю точку с первой чертившей точкой.

    Расположите указатель над первой точкой и нажатием кнопки.

    Нажмите Enter, который чертит линию, соединяя последнюю точку с первой чертившей точкой.

    Измените размер (изменяют) ROI.

    Указатель положения по waypoint и затем перетаскивает. Никакая помощь (привязывающийся к ребрам) не доступна в этом режиме.

    Добавьте waypoint.

    Расположите указатель на ребро ROI, щелкните правой кнопкой и выберите Add Waypoint. Можно также расположить указатель на ребро ROI и дважды кликнуть.

    Удалите waypoint.

    Расположите указатель на waypoint, щелкните правой кнопкой и выберите Remove Waypoint.

    Переместите ROI.Расположите указатель над ROI. Указатель превращается в форму fleur. Перетащите, чтобы переместить ROI.
    Удалите ROI.Расположите указатель на ROI (не на вершине), щелкните правой кнопкой и выберите Delete Freehand из контекстного меню. Можно также удалить ROI программно с помощью delete метод объекта.
  • Для получения информации об использовании ROI в приложении, созданном с App Designer, смотрите Используя ROI в Приложениях, Созданных с App Designer.

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

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

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

Введенный в R2018b