Contenido principal

sliceViewer

Examinar cortes de imagen

Descripción

Un objeto sliceViewer muestra cortes individuales de volúmenes RGB y en escala de grises. Puede controlar qué corte desea mostrar utilizando un control deslizante.

Cuando se abre, el objeto sliceViewer muestra la imagen del centro de la pila en la dirección especificada por sliceDirection. Utilice el control deslizante para desplazarse por el volumen y ver cortes individuales.

El objeto sliceViewer admite propiedades, funciones de objeto y eventos que se pueden utilizar para personalizar su apariencia y funcionamiento. El objeto sliceViewer puede enviar notificaciones cuando ocurren ciertos eventos, como cuando se mueve el control deslizante. Para obtener más información, consulte Eventos.

Nota

De forma predeterminada, cuando se hace clic y se arrastra el ratón en el corte mostrado de forma interactiva, se cambia su brillo y contraste, una técnica llamada ventana/nivel. Cuando se arrastra el ratón en horizontal, de izquierda a derecha, se cambia el contraste. Cuando se arrastra el ratón en vertical, de arriba a abajo, se cambia el brillo. Si se mantiene pulsada la tecla Ctrl al hacer clic y arrastrar con el ratón, se acelera la velocidad de cambio. Si se mantiene pulsada la tecla Mayús al hacer clic y arrastrar con el ratón, se reduce la velocidad de cambio. Pulse esas teclas antes de hacer clic y arrastrar. Para controlar este comportamiento, utilice la propiedad DisplayRangeInteraction.

Creación

Descripción

sliceViewer(V) muestra el volumen RGB o en escala de grises V en una figura. La figura incluye un control deslizante que puede utilizar para ver cortes individuales del volumen.

ejemplo

sliceViewer(___,Name,Value) establece propiedades utilizando argumentos de par nombre-valor. Puede especificar varios pares nombre-valor. Encierre el nombre de cada propiedad entre comillas simples.

Ejemplo: sliceViewer(V,'Colormap',cmap) crea un objeto sliceViewer y especifica el mapa de colores utilizado para mostrar el volumen.

sv = sliceViewer(___) devuelve un objeto sliceViewer, sv, con propiedades que pueden utilizarse para controlar la visualización del volumen. Utilice argumentos de entrada de cualquiera de las sintaxis anteriores.

Nota

Medical Imaging Toolbox™ extiende la funcionalidad del objeto sliceViewer (Image Processing Toolbox™) para mostrar los cortes de un objeto medicalVolume (Medical Imaging Toolbox). Para obtener más información, consulte sliceViewer (Medical Imaging Toolbox).

Argumentos de entrada

expandir todo

Volumen de entrada, especificado como un arreglo numérico de m por n por p por c. Para volúmenes en escala de grises, c es 1. Para volúmenes RGB, c es 3. Los volúmenes RGB solo pueden ser de clase uint8, uint16, single y double.

Tipos de datos: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Propiedades

expandir todo

Mapa de colores de la pila de imágenes, especificado como arreglo numérico de m por 3 con valores en el intervalo [0 1]. La propiedad Colormap no tiene efecto cuando V es una pila de imágenes RGB.

Intervalo de visualización de una pila de imágenes, especificado como un vector de dos elementos con la forma [low high]. El valor low (y cualquier valor inferior a low) se muestra en negro. El valor high (y cualquier valor superior a high) se muestra en blanco. Los valores entre estos dos valores se muestran como tonos de gris intermedios utilizando el número predeterminado de niveles de gris. Si se especifica una matriz vacía ([]), sliceViewer utiliza el valor predeterminado. DisplayRange no tiene efecto cuando se especifica una pila de imágenes RGB.

Habilitar el control interactivo del intervalo de visualización, especificado como uno de estos valores. Para obtener más información sobre el comportamiento interactivo, consulte Eventos.

ValorDescripción
'on' (predeterminado para volúmenes de intensidad en escala de grises)Controle el intervalo de visualización de una pila de imágenes en escala de grises haciendo clic con el botón izquierdo del ratón y arrastrándolo sobre los ejes.
'off' (predeterminado para volúmenes lógicos y RGB)No hay interactividad en el intervalo de visualización.

Objeto principal del objeto sliceViewer, especificado como un identificador de un uipanel o una figura creada con los comandos figure o uifigure. Si no se especifica un objeto principal, el objeto principal del objeto sliceViewer es gcf.

Factores de escala utilizados para volver a escalar el volumen, especificados como un vector numérico positivo de 1 por 3. Los valores del arreglo corresponden al factor de escala aplicado en las direcciones x, y y z.

Dirección en la que examinar la pila de imágenes, especificada como un vector lógico de 1 por 3 o uno de los vectores de caracteres de esta tabla.

Vector de caracteresVector lógicoDescripción
'X' [1 0 0]Examinar en la dirección X
'Y'[0 1 0]Examinar en la dirección Y
'Z' (valor predeterminado)[0 0 1]Examinar en la dirección Z

Índice del corte que se desea mostrar del volumen, especificado como un escalar numérico positivo.

Funciones del objeto

addlistenerCreate event listener bound to event source
getAxesHandleGet handle to axes in Slice Viewer

Ejemplos

contraer todo

Cargue los datos de una RM en el área de trabajo.

load mristack

Visualice los datos en el visor de cortes y especifique un mapa de colores personalizado para visualizar los cortes. El visor de cortes abre la pila de imágenes y muestra la que está en el centro. Utilice el control deslizante para ver un corte diferente.

cmap = parula(256);
s = sliceViewer(mristack,"Colormap",cmap,"Parent",figure);

Cargue los datos de una RM en el área de trabajo.

load mristack

Visualice los datos en el visor de cortes.

s = sliceViewer(mristack,"Parent",figure);

Obtenga el identificador de los ejes que contienen el corte mostrado.

hAx = getAxesHandle(s);

Especifique el nombre del archivo GIF que desea crear.

filename = "animatedSlice.gif";

Cree un arreglo de números de corte.

sliceNums = 1:21;

Recorra los números de corte en un bucle y cree una imagen de cada corte mostrado. Escriba las imágenes en un archivo 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

Cargue una pila de imágenes en el área de trabajo.

load mristack

Visualice los datos en el visor de cortes y especifique un mapa de colores personalizado para visualizar los cortes. El visor de cortes abre la pila de imágenes y muestra la que está en el centro. Utilice el control deslizante para ver un corte diferente.

cmap = parula(256);
s = sliceViewer(mristack,"Colormap",cmap,"Parent",figure);

Configure receptores para los dos eventos del control deslizante del objeto sliceViewer: cuando el control deslizante se está moviendo y cuando el control deslizante se ha movido. Cuando mueve el control deslizante, el visor de cortes envía notificaciones de estos eventos y ejecuta la función de callback especificada.

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

Utilice esta función de callback allevents para mostrar el nombre de cada evento y la posición actual del control deslizante.

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

Más acerca de

expandir todo

Historial de versiones

Introducido en R2019b