sliceViewer

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

Описание

sliceViewer средство просмотра для исследования объемы RGB и шкала полутонов.

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

sliceViewer свойства поддержки объектов, объектные функции и события, которые можно использовать, чтобы настроить его внешний вид и функционирование. 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 могут только иметь класс uint8uint16единственный, и double.

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

Свойства

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

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

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

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

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

'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Получите указатель на оси в Средстве просмотра Среза

Примеры

свернуть все

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

load mristack

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

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

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

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
Для просмотра документации необходимо авторизоваться на сайте