orthosliceViewer

Просмотрите ортогональные срезы в объеме RGB или шкале полутонов

Описание

orthosliceViewer отображения объекта объемные данные изображения путем представления трех ортогональных представлений объема вдоль x, y и размерностей z.

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

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

Примечание

По умолчанию перетаскивание мыши в срезах, отображенных в интерактивном режиме, изменяет их яркость и контраст, метод под названием window/level. Перетаскивание мыши горизонтально от левого до права изменяет контраст. Перетаскивание мыши вертикально вверх и вниз по изменениям яркость. Удержание клавиши Ctrl при перетаскивании мыши ускоряет изменения. Удержание клавиши Shift при перетаскивании мыши замедляет скорость изменения. Нажмите эти клавиши перед перетаскиванием. Чтобы управлять этим поведением, используйте свойство DisplayRangeInteraction.

Создание

Описание

пример

orthosliceViewer(V) отображает объем V на рисунке.

orthosliceViewer(___,Name,Value) аргументы пары "имя-значение" использования свойств наборов. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки.

Пример: orthosliceViewer(V,'Colormap',cmap) создает orthosliceViewer возразите и указывает, что палитра раньше отображала объем.

s = orthosliceViewer(___) возвращает orthosliceViewer объекты, со свойствами, которые могут использоваться, чтобы управлять визуализацией изображений. Используйте входные параметры от любого из предыдущих синтаксисов.

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

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

Введите объем в виде m-by-n-by-p-by-c числовой массив. Для полутоновых объемов, c 1. Для объемов RGB c равняется 3. Объемы RGB могут только иметь класс uint8uint16единственный, и double.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Свойства

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

General Properties

Палитра стека изображений в виде m-by-3 числовой массив со значениями в области значений [0, 1]. Colormap свойство не оказывает влияния когда V стек изображений RGB.

Отобразите область значений полутонового объема в виде вектора с 2 элементами из формы [low high]. Значение low (и любое значение меньше, чем low) отображения как черные. Значение high (и любое значение, больше, чем high) отображения как белые. Промежуточные значения отображены как промежуточные оттенки серого, с помощью количества по умолчанию уровней серого. Если вы задаете пустой матричный ([]), orthosliceViewer использует значение по умолчанию. DisplayRange не оказывает влияния, когда вы задаете объем RGB.

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

ЗначениеОписание
'on' (значение по умолчанию для полутоновых объемов интенсивности)Можно управлять областью значений отображения стека полутонового изображения путем щелчка левой кнопкой по мыши и перетаскивания его на осях.
'off' (значение по умолчанию для логического и объемов RGB)Никакая интерактивность области значений отображения.

Родительский элемент orthosliceViewer объект в виде указателя на uipanel или как фигура, созданная с любым figure или uifigure функция. Если вы не задаете родительский элемент, родительский элемент orthosliceViewer объектом является gcf.

Масштабные коэффициенты раньше перемасштабировали объем в виде 1 3 положительного числового вектора. Значения в массиве соответствуют масштабному коэффициенту, примененному в x, y и направлениях z.

Индексы фрагментов изображения, которые будут отображены в виде 1 3 неотрицательного числового массива. orthosliceViewer отображает соответствующие срезы в [x,y,z] индексы в YZ, XZ, и XY представления.

Свойства перекрестия

Цвет перекрестия в виде триплета RGB, названия цвета или короткого названия цвета.

Можно задать любой цвет с помощью триплета RGB. Триплет RGB является вектором-строкой с 3 элементами, элементы которого задают интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений [0,1].

Можно задать некоторые простые цвета по наименованию как строковый скаляр или вектор символов. Эта таблица приводит опции именованного цвета и эквивалентные триплеты RGB.

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

A rectangle colored pure red

'green''g'[0 1 0]

A rectangle colored pure green

'blue''b'[0 0 1]

A rectangle colored pure blue

'cyan' 'c'[0 1 1]

A rectangle colored pure cyan

'magenta''m'[1 0 1]

A rectangle colored pure magenta

'yellow''y'[1 1 0]

A rectangle colored pure yellow

'black''k'[0 0 0]

A rectangle colored black

'white''w'[1 1 1]

A rectangle colored white

Вот триплеты RGB для цветов по умолчанию что MATLAB® использование во многих типах графиков.

Триплет RGBВнешний вид
[0 0.4470 0.7410]

A rectangle colored medium blue

[0.8500 0.3250 0.0980]

A rectangle colored reddish-orange

[0.9290 0.6940 0.1250]

A rectangle colored dark yellow

[0.4940 0.1840 0.5560]

A rectangle colored dark purple

[0.4660 0.6740 0.1880]

A rectangle colored light green

[0.3010 0.7450 0.9330]

A rectangle colored light blue

[0.6350 0.0780 0.1840]

A rectangle colored dark red

Пример: 'CrosshairColor','r'

Пример: 'CrosshairColor','green'

Пример: 'CrosshairColor',[0 0.4470 0.7410]

Состояние соединенного перекрестия возражает в виде одного из значений в этой таблице.

ЗначениеОписание
'on'Перекрестие отображается и может взаимодействоваться с.
'inactive'Перекрестие отображается, но не может взаимодействоваться с
'off'Перекрестие не отображается.

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

Цвет перекрестия чередует в виде триплета RGB, названия цвета, короткого названия цвета или 'none'. Если вы задаете 'none', затем перекрестие является сплошным цветом, заданным CrosshairColor свойство. В противном случае перекрестие чередуется с цветами, чередующимися между цветом, заданным этим свойством и цветом, заданным CrosshairColor свойство.

Можно задать любой цвет с помощью триплета RGB. Триплет RGB является вектором-строкой с 3 элементами, элементы которого задают интенсивность красных, зеленых, и синих компонентов цвета. Интенсивность должна быть в области значений [0,1].

Можно задать некоторые простые цвета по наименованию как строковый скаляр или вектор символов. Эта таблица приводит опции именованного цвета и эквивалентные триплеты RGB.

Название цветаКраткое названиеТриплет RGBВнешний вид
'red''r'[1 0 0]

A rectangle colored pure red

'green''g'[0 1 0]

A rectangle colored pure green

'blue''b'[0 0 1]

A rectangle colored pure blue

'cyan' 'c'[0 1 1]

A rectangle colored pure cyan

'magenta''m'[1 0 1]

A rectangle colored pure magenta

'yellow''y'[1 1 0]

A rectangle colored pure yellow

'black''k'[0 0 0]

A rectangle colored black

'white''w'[1 1 1]

A rectangle colored white

Вот триплеты RGB для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBВнешний вид
[0 0.4470 0.7410]

A rectangle colored medium blue

[0.8500 0.3250 0.0980]

A rectangle colored reddish-orange

[0.9290 0.6940 0.1250]

A rectangle colored dark yellow

[0.4940 0.1840 0.5560]

A rectangle colored dark purple

[0.4660 0.6740 0.1880]

A rectangle colored light green

[0.3010 0.7450 0.9330]

A rectangle colored light blue

[0.6350 0.0780 0.1840]

A rectangle colored dark red

Пример: 'CrosshairStripeColor','r'

Пример: 'CrosshairStripeColor','green'

Пример: 'CrosshairStripeColor',[0 0.4470 0.7410]

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

addlistenerСоздайте прослушиватель события, связанный с источником события
getAxesHandlesПолучите указатели на оси в Средстве просмотра Ортосреза

Примеры

свернуть все

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

load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled','images','vol_001.mat'));

Создайте пользовательскую Палитру.

cmap = parula(256);

Просмотрите данные MRI в Средстве просмотра Ортосреза.

s = orthosliceViewer(vol,'Colormap',cmap)
s = 
  orthosliceViewer with properties:

               SliceNumbers: [121 121 78]
             CrosshairColor: [1 1 0]
         CrosshairLineWidth: 1
       CrosshairStripeColor: 'none'
            CrosshairEnable: 'on'
                     Parent: [1×1 Panel]
                   Colormap: [256×3 double]
               DisplayRange: [0 2239]
               ScaleFactors: [1 1 1]
    DisplayRangeInteraction: 'on'

Загрузите данные MRI и просмотрите их в Средстве просмотра Ортосреза.

load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled','images','vol_001.mat'));
s = orthosliceViewer(vol);

Получите указатель осей, который содержит срез.

[hXYAxes, hYZAxes, hXZAxes] = getAxesHandles(s);

Выключите перекрестие для лучшей видимости.

set(s,'CrosshairEnable','off');

Задайте имя файла GIF.

filename = 'animatedYZSlice.gif';

Создайте массив чисел среза в необходимом направлении. Рассмотрите направление YZ.

sliceNums = 1:240;

Цикл через и создает изображение в заданном положении среза.

for idx = sliceNums
    % Update X slice number to get YZ Slice.
    s.SliceNumbers(1) = idx;
  
    % Use getframe to capture image.
    I = getframe(hYZAxes);
    [indI,cm] = rgb2ind(I.cdata,256);
  
    % Write frame to the GIF File.
    if idx == 1
        imwrite(indI,cm,filename,'gif','Loopcount',inf,'DelayTime',0.05);
    else
        imwrite(indI,cm,filename,'gif','WriteMode','append','DelayTime',0.05);
    end
end

Просмотрите анимированный GIF.

Загрузите стек изображений.

load(fullfile(toolboxdir('images'),'imdata','BrainMRILabeled','images','vol_001.mat'));

Создайте пользовательскую палитру для просмотра срезов.

cmap = parula(256);

Просмотрите стек изображений в Средстве просмотра Ортосреза.

os = orthosliceViewer(vol,'Colormap',cmap);

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

addlistener(os,'CrosshairMoving',@allevents);
addlistener(os,'CrosshairMoved',@allevents);

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

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

Больше о

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

Смотрите также

| | | | |

Введенный в R2019b