Ellipse

Эллиптическая необходимая область

Описание

Ellipse эллиптический объект видимой области (ROI).

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

Чтобы чертить круговой ROI, используйте Circle объект.

Создание

Описание

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

пример

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

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

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

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

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

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

Свойства

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

Соотношение сторон эллипса в виде числового скаляра. Значение этого свойства изменяется автоматически, когда вы чертите или изменяете размер эллипса, или путем установки SemiAxes свойство. images.roi.Ellipse объект вычисляет это значение как height/width.

Центр ROI в виде 1 2 числового массива формы [x y]. Значения x и y являются координатами центральной точки ROI. Значение этого свойства изменяется автоматически, когда вы чертите или перемещаете 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 не захватывает клики мыши.

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

Видимость 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 в виде неотрицательного числового скаляра. Угол измеряется в градусах в направлении по часовой стрелке. Значение этого свойства изменяется автоматически, когда вы чертите или перемещаете ROI.

Значение RotationAngle не влияет на значение Position. Position свойство представляет исходное положение ROI перед вращением. Чтобы определить местоположение вращаемого ROI, используйте Vertices свойство.

Состояние выбора 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]

Длины полуоси эллипса в виде 1 2 массива формы [semiaxis1 semiaxis2]. images.roi.Ellipse возразите присваивает длину полуоси, которая является самой близкой к направлению x к semiaxis1. Обратите внимание однако, что форма и ориентация эллипса могут измениться через взаимодействие. Значение этого свойства изменяется автоматически, когда вы чертите или изменяете ROI.

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

Пример: 'green'

Пример: 'g'

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

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

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

Местоположения точек, которые простираются вдоль периметра эллипса в виде n-by-2 массив. Это свойство доступно только для чтения.

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

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

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

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

Примеры

свернуть все

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

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

Создайте эллиптический ROI на изображении, с помощью Center свойство задать местоположение и SemiAxes свойство задать его форму. Для программно созданных ROI, если вы хотите ROI, чертивший в определенные оси, необходимо указать что оси как входной параметр. В противном случае экземпляр класса images.roi.Ellipse создан, но не отображен. В этом примере задайте текущую систему координат (gca), чтобы чертить ROI на изображении в этом оси.

h = images.roi.Ellipse(gca,'Center',[1000 1000],'Semiaxes',[350 150]);

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

I = imread('cameraman.tif');

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

imshow(I);

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

roi = images.roi.Ellipse(gca,'Center',[100 100],'Semiaxes',[50 80]);

Настройте прослушиватели для 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 Current Center: ' mat2str(evt.CurrentCenter)]);
            disp(['ROI moving Current SemiAxes: ' mat2str(evt.CurrentSemiAxes)]);
        case{'ROIMoved'}
            disp(['ROI moved Current Center: ' mat2str(evt.CurrentCenter)]);
            disp(['ROI moved Current SemiAxes: ' mat2str(evt.CurrentSemiAxes)]);
    end
end

Больше о

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

Советы

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

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

    Расположите указатель около вершины. Указатель превращается во вращать указатель. Кликните и вращайте ROI на его центре.

    Чтобы заставить вращение огрызаться на 15 углов степени, нажмите Shift, как вы вращаетесь.

    Обеспечьте соотношение сторон при рисовании.

    Удержите клавишу Shift, как вы чертите. Создает круговой ROI.

    Чтобы заблокировать соотношение сторон, расположите указатель на ROI, щелкните правой кнопкой и выберите Fix Aspect Ratio из контекстного меню

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

    Указатель положения по вершине и затем перетаскивает. К основному соотношение сторон, как вы изменяете размер, удерживает клавишу Shift.

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

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

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

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

Введенный в R2018b