drawassisted

Создайте freehand ROI на изображении с помощью ребер изображения

Описание

roi = drawassisted создает AssistedFreehand объект и включает интерактивное рисование интересующей вас видимой области (ROI) на текущей системе координат. The AssistedFreehand Информация только для чтения использует ребра базового изображения, чтобы «помочь» вам, когда вы рисуете форму.

Чтобы нарисовать информация только для чтения, расположите указатель мыши на изображении, щелкните и отпустите, чтобы разместить первую вершину (путевую точку), а затем переместите указатель мыши, чтобы нарисовать линию. Когда вы перемещаете указатель мыши, чтобы нарисовать форму, линия автоматически следует по контурам ребер на базовом изображении. При рисовании щелкните, чтобы разместить вершины вдоль линии. Чтобы закончить информация только для чтения и закрыть форму, дважды щелкните. Дополнительные сведения об использовании информации только для чтения, включая опции горячих клавиш и контекстного меню, см. в разделе Советов.

Примечание

drawassisted является функцией удобства для создания AssistedFreehand Объект информация только для чтения. Если вы создаете объект информация только для чтения непосредственно, вызывая AssistedFreehand, вы должны вызвать draw функция объекта для включения интерактивного рисования информация только для чтения. Напротив, drawassisted функция создает объект информация только для чтения и вызывает draw функция объекта для вас. Какой бы способ вы ни создали информация только для чтения, вы используете свойства объекта, функции объекта и уведомления о событиях, чтобы настроить его внешний вид и поведение. Дополнительные сведения об использовании этих возможностей см. в разделе Советы.

roi = drawassisted(hImage) создает информация только для чтения на изображении, заданном hImage.

roi = drawassisted(___,Name,Value) изменяет внешний вид и поведение информация только для чтения, используя одну или несколько пары "имя-значение". Для неопределенных пар "имя-значение" заданы значения по умолчанию.

Примеры

свернуть все

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

im = imread('peppers.png');
imshow(im)

Нарисуйте помощь freehand ROI.

h = drawassisted;

Создайте маску ROI.

bw = createMask(h);

Создайте альфа- матрицу, которое задает прозрачность исходного изображения в каждом пикселе.

alphamat = imguidedfilter(single(bw),im,'DegreeOfSmoothing',2);

Отображение целевого изображения.

target = imread('fabric.png');
imshow(target)

Измените размер исходного изображения и альфа- матрицы на тот же размер, что и целевое изображение.

alphamat = imresize(alphamat,[size(target,1),size(target,2)]);
im = imresize(im,[size(target,1),size(target,2)]);

Альфа смешивает исходный информация только для чтения в целевое изображение.

fused = single(im).*alphamat + (1-alphamat).*single(target);
fused = uint8(fused);
imshow(fused)

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

I = imread('cameraman.tif');

Отобразите изображение. Используйте imshow возвращает значение для получения указателя на отображаемое изображение. Как создать AssistedFreehand Информация только для чтения требует базового изображения.

img = imshow(I);

Нарисуйте вспомогательную информацию только для чтения freehand на изображении с помощью базового изображения.

roi = drawassisted(img,'Color','r');

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

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

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

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

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

свернуть все

Объект изображения, на котором можно нарисовать информация только для чтения, заданный как объект изображения.

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: roi = drawassisted('LineWidth',5);

Закройте информацию только для чтения freehand, задайте разделенную запятой пару, состоящую из 'Closed' и логическое значение true или false. Если true (по умолчанию), drawassisted закрывает информация только для чтения путем соединения последней точки пути, нарисованной к первой нарисованной точке пути.

Информация только для чтения цвет, заданный как разделенная запятой пара, состоящий из 'Color' и MATLAB® ColorSpec (Color Specification) значение.

Пример: 'green'

Пример: 'g'

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

Контекстное меню, заданное как разделенная разделенными запятой парами, состоящая из 'ContextMenu' и a ContextMenu объект. Задайте эту пару "имя-значение", чтобы отобразить пользовательское контекстное меню при щелчке правой кнопкой мыши по информация только для чтения. Чтобы создать пользовательское контекстное меню, создайте ContextMenu объект, при помощи uicontextmenu а затем сконфигурируйте свойства контекстного меню.

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

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

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

Видимость указателя информация только для чтения в Children свойство родительского элемента, заданное как разделенная разделенными запятой парами, состоящая из 'HandleVisibility' и одно из значений в этой таблице.

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

Изображение, на котором можно нарисовать информация только для чтения, заданное как разделенная разделенными запятой парами, состоящая из 'Image' и указатель на Image объект.

Интерактивность информация только для чтения, заданная как разделенная разделенными запятой парами, состоящая из 'InteractionsAllowed' и одно из значений в этой таблице.

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

Информация только для чтения, заданная как разделенная разделенными запятой парами, состоящая из 'Label' и вектор символов или строка. По умолчанию это свойство устанавливается в пустой массив ('') и информация только для чтения не имеет метки.

Прозрачность текстового фона, заданная как разделенная разделенными запятой парами, состоящая из 'LabelAlpha' и скалярное значение в области значений [0 1]. Когда установлено значение 1, текстовый фон полностью непрозрачен. Когда установлено значение 0, текстовый фон полностью прозрачен.

Пометьте цвет текста, заданный как разделенная разделенными запятой парами, состоящая из 'LabelTextColor' и MATLAB ColorSpec (Color Specification) значение. Значения интенсивности должны находиться в области значений [0,1].

Видимость метки информация только для чтения, заданная как разделенная разделенными запятой парами, состоящая из 'LabelVisible' и одно из этих значений.

ЗначениеОписание
'on'Метка видна, когда виден информация только для чтения, и Label свойство непусто (по умолчанию).
'hover'

Метка видна только при наведении указателя мыши на информация только для чтения.

'off'Метка не отображается.

Ширина ребра информация только для чтения, заданная как разделенная разделенными запятой парами, состоящая из 'LineWidth' и положительный числовой скаляр в точках. Значение по умолчанию втрое превышает число точек на пиксель экрана.

Размер маркера, заданный как разделенная разделенными запятой парами, состоящая из 'MarkerSize' и положительный числовой скаляр в точках.

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

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

Состояние выбора информация только для чтения, заданное как разделенная разделенными запятой парами, состоящая из 'Selected' и true или false. Это значение можно также задать в интерактивном режиме. Для примера клик по информации только для чтения выбирает его и устанавливает это значение равным true. Точно так же, если вы Ctrl-click информация только для чтения, отменяет его выбор и устанавливает это значение на false.

Цвет ROI, заданный как разделенная разделенными запятой парами, состоящая из 'SelectedColor' и MATLAB ColorSpec (Color Specification). Если 'SelectedColor' установлено в 'none', затем значение Color определяет цвет ROI для всех выбранных состояний или нет.

Пример: 'green'

Пример: 'g'

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

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

Цвет полосы информация только для чтения, заданный как разделенная разделенными запятой парами, состоящая из 'StripeColor'и MATLAB ColorSpec (Color Specification) значение. Если вы задаете 'StripeColor', информация только для чтения ребра полосатый. Чередование состоит из комбинации значений, заданных как 'Color' и это значение.

Пример: 'green'

Пример: 'g'

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

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

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

Видимость информация только для чтения, заданная как разделенная разделенными запятой парами, состоящая из 'Visible' и 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

Управляющие точки для изменения формы ROI, заданные как разделенная разделенными запятой парами, состоящая из 'Waypoints' и n -by-1 логический вектор, такой же длины как Position. Элементы в Waypoints со значением true указать, что соответствующая точка в Position является путевой точкой. Точки пути появляются как округлые фигуры на ребре информация только для чтения. Чтобы изменить форму ROI, щелкните путевую точку и перетащите ее. Перетаскивание путевой точки изменяет контур нарисованной свободно области между путевой точкой и ближайшими соседними путевыми точками.

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

Выходные аргументы

свернуть все

Ассистировал Freehand ROI, вернулся как AssistedFreehand объект.

Совет

  • В этой таблице описывается, как выполнить общие задачи с AssistedFreehand Информация только для чтения.

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

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

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

    Наведите указатель мыши на первую точку и щелкните мышью.

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

    Измените размер (измените форму) информация только для чтения.

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

    Добавьте путевую точку.

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

    Удалите путевую точку.

    Поместите указатель мыши на путевую точку, щелкните правой кнопкой мыши и выберите Remove Waypoint.

    Переместите информация только для чтения.Наведите указатель мыши на информация только для чтения. Указатель изменяется на форму fleur. Щелкните и перетащите мышью, чтобы переместить информация только для чтения.
    Удаление информация только для чтения.Поместите указатель мыши на информация только для чтения (не на вершине), щелкните правой кнопкой мыши и выберите Delete Freehand из контекстного меню. Можно также программно удалить информация только для чтения с помощью delete метод объекта.
  • The drawassisted функция возвращает AssistedFreehand Объект информация только для чтения. После создания используйте эти возможности объекта, чтобы настроить внешний вид и поведение информация только для чтения.

    • Свойства объекта - объекты информация только для чтения поддерживают свойства, которые изменяют их внешний вид или поведение. Например, чтобы изменить цвет roi в желтый цвет, установите его Color свойство, roi.Color = 'yellow'.

    • Функции объекта - объекты информация только для чтения поддерживают набор функций объекта, которые работают с ROIs. Например, если вы хотите приостановить командную строку MATLAB после создания информация только для чтения, вызовите wait функция объекта.

    • Уведомления о событиях - объекты информация только для чтения могут уведомлять ваш код, когда определенные события, такие как перемещение или клик, происходят с информация только для чтения. Чтобы получать эти уведомления, используйте addlistener объект для настройки listeners для определенных событий. В прослушиватель задайте событие, например 'ROIMoved', и функцию обратного вызова, которая выполняется, когда событие происходит. Когда информация только для чтения уведомляет ваше приложение через прослушиватель, он возвращает данные, характерные для события. Для примера, с 'ROIMoved' событие, объект информация только для чтения возвращает свою предыдущую позицию и текущую позицию.

    Для примера использования прослушивателей событий с AssistedFreehand объект см. раздел «Настройка прослушивателя для событий AssistedFreehand». Для получения дополнительной информации об этих возможностях смотрите AssistedFreehand документация по объекту.

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

расширить все

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

Введенный в R2018b