Polygon

Многоугольная необходимая область

Описание

Polygon объект является многоугольной видимой областью (ROI).

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

Создание

Описание

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

пример

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

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

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

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

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

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

Свойства

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

Цвет ROI, заданный как MATLAB® ColorSpec (Color Specification).

Пример: 'green'

Пример: 'g'

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

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, заданного как одно из значений в этой таблице.

ЗначениеОписание
'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], где каждая строка задает положение вершины многоугольника. Polygon генерирует эти точки, когда вы чертите форму 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, заданной как ColorSpec (Color Specification) MATLAB значение. По умолчанию ребро ROI твердо окрашенный. Если вы задаете StripeColor, ребро ROI чередуется. Чередование состоит из комбинации значения, заданного 'Color' и это значение.

Пример: 'green'

Пример: 'g'

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

Создайте многоугольный ROI на изображении, с помощью Position свойство задать вершины ROI. Обратите внимание на то, что необходимо задать оси, где вы хотите чертить ROI в качестве первого аргумента.

h = images.roi.Polygon(gca,'Position',[100 150; 200 250; 300 350; 150 450]);

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

I = imread('cameraman.tif');

Отобразите изображение.

imshow(I);

Чертите ROI Точки на изображении. Поскольку этот пример задает длину и местоположение ROI, вы не должны вызывать draw метод, чтобы включить интерактивный рисунок.

roi = images.roi.Polygon(gca,'Position',[115 30; 80 45; 80 80; 115 90; 145 65]);

Настройте прослушиватели для 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 поддерживает следующую интерактивность, включая горячие клавиши.

    ПоведениеГорячая клавиша
    Заставьте проведенную линию огрызаться на 15 углов степени.Удержите клавишу Shift при рисовании.
    Закончите чертить (близко) ROI.

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

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

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

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

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

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

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

    Удалите последний раз добавленную вершину, но продолжите чертить.Нажмите Backspace. Функция перерисовывает линию от предыдущей вершины до текущего положения указателя. Можно только отступить до первой вершины, которую вы чертили.
    Измените размер (изменяют) ROI

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

    Добавьте новую вершину к многоугольнику и затем перетащите.

    Удалите вершину. ROI перерисовывает линию, соединяющую две соседних вершины.

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

Введенный в R2018b