exponenta event banner

sliceViewer

Просмотр фрагментов изображения

Описание

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

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

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

Примечание

По умолчанию щелчок и перетаскивание мыши в отображаемом фрагменте в интерактивном режиме изменяет их яркость и контрастность, т.е. метод, называемый окном/уровнем. Перетаскивание мыши по горизонтали слева направо изменяет контраст. Перетаскивание мыши вертикально вверх и вниз изменяет яркость. Нажатие клавиши Ctrl при щелчке и перетаскивании мыши ускоряет изменения. Нажатие клавиши Shift при щелчке и перетаскивании мыши замедляет скорость изменения. Нажмите эти клавиши перед щелчком и перетаскиванием. Для управления этим поведением используйте свойство DisplayRireInteraction.

Создание

Описание

пример

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