orthosliceViewer

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

Описание

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

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

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

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

Создание

Описание

пример

orthosliceViewer(V) отображает ортогональные срезы шкалы полутонов или объема RGB V в фигуре.

orthosliceViewer(V,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]. Когда V стек изображений RGB, Colormap не оказывает влияния.

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

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

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

Родительский элемент orthosliceViewer объект, заданный как uipanel или как figure созданный с любым 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'Перекрестие не отображается.

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

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

Пример: '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