drawassisted

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

Синтаксис

h = drawassisted
h = drawassisted(hImage)
h = drawassisted(___,Name,Value)

Описание

h = drawassisted начинает интерактивное размещение видимой области (ROI) от руки на текущей системе координат. Функция drawassisted использует ребра в основном изображении, чтобы "помочь" процессу рисунка. Функция возвращает h, указатель на объект images.roi.AssistedFreehand. Можно изменить ROI в интерактивном режиме с помощью мыши. ROI также поддерживает контекстное меню щелчка правой кнопкой, которое управляет аспектами его внешнего вида и поведения.

h = drawassisted(hImage) начинает интерактивное размещение ROI от руки на изображении, заданном hImage.

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

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

Примеры

свернуть все

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

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

Чертите 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)]);

Альфа-смешение исходный ROI в целевое изображение.

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

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

свернуть все

Объект изображения, на котором можно чертить ROI, заданный как объект изображения.

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

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

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

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

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

Пример: 'green'

Пример: 'g'

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

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

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

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

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

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

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

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

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

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

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

Родительский элемент ROI, заданный как пара, разделенная запятой, состоящая из 'Parent' и объекта Axes. UIAxes не может быть родительским элементом ROI.

Положение ROI, заданного как пара, разделенная запятой, состоящая из 'Position' и n-by-2 массив формы [x1 y1; …; xn yn], где n является количеством вершин в ROI. Каждая строка задает положение вершины в ROI.

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

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

Пример: 'green'

Пример: 'g'

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

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

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

Пример: 'green'

Пример: 'g'

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

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

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

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

Видимость ROI, заданная как пара, разделенная запятой, состоящая из 'Visible' и одно из значений в этой таблице.

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

Контрольные точки, чтобы изменить ROI, заданный как пара, разделенная запятой, состоящая из 'Waypoints' и n-by-1 логический вектор, та же длина как Position. Каждый элемент вектора Waypoints указывает, является ли соответствующая точка в массиве Position waypoint. Положения, которые являются waypoints, установлены в true в Waypoints. Перетаскивание waypoint изменяет ROI между заданным waypoint и его мгновенным соседним waypoints. Если пустой, drawfreehand автоматически генерирует Waypoints в местоположениях увеличенного искривления.

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

свернуть все

ROI От руки, которому помогают, возвращенный как объект images.roi.AssistedFreehand.

Советы

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

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

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

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

    Указатель положения по первой вершине и нажатию кнопки.

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

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

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

    Добавьте вершину (waypoint).

    Расположите указатель на ребро ROI и дважды кликните.

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

    Удалите вершину (waypoint).

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

    Переместите ROI.Расположите указатель над ROI. Указатель изменяется на форму fleur. Перетащите, чтобы переместить ROI.

Введенный в R2018b