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]палитра не оказывает влияния когда S m-by-n-by-p-by-c стек изображений RGB.

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

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

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

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

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

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

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

Цвет перекрестия в виде MATLAB® ColorSpec (Color Specification).

Пример: 'green'

Пример: 'g'

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

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

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

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

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

Пример: 'green'

Пример: 'g'

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

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

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