sliceViewer

Просмотр срезов изображений

Описание

sliceViewer является средством просмотра для исследования томов в полутонах и RGB.

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

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

Примечание

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

Создание

Описание

пример

sliceViewer(S) отображение тома полутонового или RGB S на рисунке. Рисунок включает ползунок, который можно использовать для просмотра отдельных срезов объема.

sliceViewer(___,Name,Value) устанавливает свойства с помощью пар "имя-значение". Для примера, sliceViewer(S,'Colormap',cmap) создает sliceViewer объект, задающий палитру, используемую для отображения объема. Можно задать несколько пары "имя-значение". Заключайте каждое имя свойства в одинарные кавычки.

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

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

расширить все

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

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

Свойства

расширить все

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

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

Включите интерактивное управление областью значений отображения, заданным как одно из следующих значений. Дополнительные сведения об интерактивном поведении см. в разделе «Описание».

ЗначениеОписание

'on' (по умолчанию для объемов интенсивности в полутоновом цвете)

Управление областью значений отображения стека полутоновых изображений путем щелчка левой кнопкой мыши и перетаскивания его по осям.

'off'(по умолчанию для логических томов и томов RGB)

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

Родительский элемент sliceViewer объект, заданный как указатель на uipanel или рисунок, созданный с помощью figure или uifigure команды. Если вы не задаете родительский элемент, родительский элемент sliceViewer объект gcf.

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

Направление, в котором можно просмотреть стек изображений, заданное как логический вектор 1 на 3 или один из векторов символов в этой таблице.

Вектор символовЛогический векторОписание
'X' [1 0 0]Просмотр в X направлении
'Y'[0 1 0]Просмотр в Y направлении
'Z' (по умолчанию)[0 0 1]Просмотр в Z направлении

Индекс среза, отображаемого из объема, заданный как положительный числовой скаляр.

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

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

Примеры

свернуть все

Загрузите данные МРТ в рабочую область.

load mristack

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

cmap = parula(256);
s = sliceViewer(mristack,'Colormap',cmap);

Загрузите данные МРТ в рабочую область.

load mristack

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

s = sliceViewer(mristack);

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

hAx = getAxesHandle(s);

Укажите имя файла GIF, который вы хотите создать.

filename = 'animatedSlice.gif';

Создайте массив чисел срезов.

sliceNums = 1:21;

Циклически просмотрите номера срезов и создайте изображение каждого отображаемого среза. Запишите изображения в GIF файла.

for idx = sliceNums
    % Update slice number
    s.SliceNumber = idx;
    % Use getframe to capture image
    I = getframe(hAx);
    [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

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

load mristack

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

cmap = parula(256);
s = sliceViewer(mristack,'Colormap',cmap);

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

addlistener(s,'SliderValueChanging',@allevents);
addlistener(s,'SliderValueChanged',@allevents);

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

function allevents(src,evt)
    evname = evt.EventName;
    switch(evname)
        case{'SliderValueChanging'}
            disp(['Slider value changing event: ' mat2str(evt.CurrentValue)]);
        case{'SliderValueChanged'}
            disp(['Slider value changed event: ' mat2str(evt.CurrentValue)]);
    end
end

Подробнее о

расширить все

Введенный в R2019b