Main Content

drawcuboid

Crear ROI cuboidal personalizable

Descripción

ejemplo

roi = drawcuboid crea un objeto de ROI y permite el dibujo interactivo de una región cuboidal de interés (ROI) en los ejes actuales.Cuboid

Para dibujar el ROI, llame a la función.drawcuboid La función dibuja un ROI cuboidal, centrado en el volumen. Mueva el puntero a la imagen. El cursor cambia a una forma de fleur. Mueva el ROI a cualquier parte de la imagen. Para finalizar el ROI, haga clic en el botón del ratón. Para obtener más información sobre el uso del ROI, incluidos los métodos abreviados de teclado y las opciones del menú contextual, consulte .Consejos

Nota

es una función de conveniencia para crear un objeto de ROI.drawcuboidCuboid Si crea el objeto ROI directamente, llamando a , debe llamar a la función de objeto para habilitar el dibujo interactivo del ROI.Cuboiddraw Por el contrario, la función crea el objeto ROI y llama a la función de objeto por usted.drawcuboiddraw Independientemente de la forma en que cree el ROI, utilice propiedades de objeto, funciones de objeto y notificaciones de eventos para personalizar su apariencia y comportamiento. Para obtener más información sobre el uso de estas capacidades, consulte .Consejos

H = drawcuboid(ax) crea el ROI en los ejes especificados por en lugar de los ejes actuales ( ).axgca

roi = drawcuboid(S) crea el ROI en el objeto especificado por .ScatterS Durante la colocación interactiva, el cuboide se ajusta al punto más cercano definido por el objeto.Scatter

roi = drawcuboid(___,Name,Value) modifica la apariencia del ROI utilizando uno o más pares nombre-valor.

Ejemplos

contraer todo

Cree un gráfico de dispersión 3D y defina interactivamente un ROI cuboide sobre los datos.

Defina vectores para datos de dispersión 3D.

[x,y,z] = sphere(16); X = [x(:)*.5 x(:)*.75 x(:)]; Y = [y(:)*.5 y(:)*.75 y(:)]; Z = [z(:)*.5 z(:)*.75 z(:)]; 

Especifique el tamaño y el color de cada marcador.

S = repmat([1 .75 .5]*10,numel(x),1); C = repmat([1 2 3],numel(x),1);

Cree un gráfico de dispersión 3D. Utilice para cambiar el ángulo de los ejes de la figura.view

figure hScatter = scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled');  view(-60,60); 

Comience a colocar un ROI cuboide en los ejes. El ROI se ajusta al punto más cercano definido por el gráfico de dispersión. Ajuste el tamaño del cuboide durante la colocación interactiva utilizando la rueda de desplazamiento.

drawcuboid(hScatter);

Defina vectores para datos dispersos 3D.

[x,y,z] = sphere(16); X = [x(:)*.5 x(:)*.75 x(:)]; Y = [y(:)*.5 y(:)*.75 y(:)]; Z = [z(:)*.5 z(:)*.75 z(:)];

Especifique el tamaño y el color de cada marcador.

S = repmat([1 .75 .5]*10,numel(x),1); C = repmat([1 2 3],numel(x),1);

Cree un trazado de dispersión 3D y utilice la vista para cambiar el ángulo de los ejes de la figura.

figure hScatter = scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled');  view(-60,60);

Comience a colocar un cuboide en los ejes que se ajusta al punto más cercano desde el trazado de dispersión. Ajuste el tamaño del cuboide durante la colocación interactiva utilizando la rueda de desplazamiento.

roi = drawcuboid(hScatter,'Color','r'); 

Configure los agentes de escucha para los eventos de movimiento del ROI. Al moverlo, el ROI envía notificaciones de estos eventos y ejecuta la función de devolución de llamada que especifique.

addlistener(roi,'MovingROI',@allevents); addlistener(roi,'ROIMoved',@allevents);

La función de devolución de llamada muestra la posición anterior y la posición actual del ROI.allevents

function allevents(src,evt)     evname = evt.EventName;     switch(evname)         case{'MovingROI'}             disp(['ROI moving previous position: ' mat2str(evt.PreviousPosition)]);             disp(['ROI moving current position: ' mat2str(evt.CurrentPosition)]);         case{'ROIMoved'}             disp(['ROI moved previous position: ' mat2str(evt.PreviousPosition)]);             disp(['ROI moved current position: ' mat2str(evt.CurrentPosition)]);     end end

Argumentos de entrada

contraer todo

Ejes primarios del ROI, especificados como un objeto axes o un objeto UIAxes. Para obtener información sobre el uso de un ROI en un UIAxes, incluidas las limitaciones importantes, consulte .Uso de ROI en aplicaciones creadas con El Diseñador de aplicaciones

Gráfico de dispersión, especificado como un objeto.Scatter El elemento primario del objeto se convierte en el elemento primario del ROI.Scatter

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: roi = drawcuboid('Color','k','Label','My Cuboid');

Color de ROI, especificado como el par separado por comas que consta de y un valor.'Color'MATLAB®ColorSpec (Color Specification)

Ejemplo: 'green'

Ejemplo: 'g'

Ejemplo: [0 1 0]

El ROI se puede eliminar interactivamente a través de un menú contextual, especificado como el par separado por comas que consta de y un valor lógico de o .'Deletable'truefalse Cuando el valor es (predeterminado), puede eliminar el ROI a través del menú contextual.true Para deshabilitar este elemento de menú contextual, establezca en .'Deletable'false Cuando el valor se establece en , todavía puede eliminar el ROI llamando a la función, especificando el identificador para el ROI como entrada.falsedelete

Area de los ejes en los que puede colocar interactivamente el ROI, especificado como el par separado por comas que consta de y uno de los valores de esta tabla.'DrawingArea'

ValorDescripción
'auto'

El área de dibujo es un superconjunto de los límites de los ejes actuales y un cuadro delimitador que rodea el ROI (predeterminado).

'unlimited'El área de dibujo no tiene contorno y los ROI se pueden dibujar o arrastrar para extenderse más allá de los límites de los ejes.
[x,y,z,w,h,d]El área de dibujo está restringida a una región que comienza en ( , , ), con anchura, altura y profundidad.xyzwhd

Transparencia de la arista del ROI, especificada como el par separado por comas que consta de y un escalar en el rango [0 1].'EdgeAlpha' Cuando se establece en , el borde del ROI es totalmente opaco.1 Cuando se establece en , el borde del ROI es completamente transparente.0

Ejemplo: drawcuboid('EdgeAlpha',0.2)

Transparencia de las caras del ROI, especificada como un valor escalar numérico en el intervalo [0 1]. Cuando el valor es , las caras de ROI son totalmente opacas.1 Cuando el valor es , las caras de ROI son completamente transparentes.0

Transparencia de la cara del ROI directamente debajo del puntero del ratón, especificada como el par separado por comas que consta de y un valor escalar en el rango o para indicar ningún cambio en la transparencia de la cara.'FaceAlphaOnHover'[0 1]'none' Cuando se establece en , la cara debajo del puntero del ratón es totalmente opaca.1 Cuando se establece en , la cara es completamente transparente.0

Ejemplo: drawcuboid('FaceAlphaOnHover',1)

Color de la cara del ROI directamente debajo del puntero del ratón, especificado como el par separado por comas que consta de y un o .'FaceColorOnHover'MATLABColorSpec (Color Specification)'none' De forma predeterminada, el color de la cara no cambia al mantener el mouse. (Hover significa colocar el puntero sobre la superficie del ROI cuboidal.) Cuando no se coloca el cursor sobre una cara del ROI, el valor de la propiedad ROI determina el color de la cara.Color Las intensidades deben estar en el rango.[0,1]

Ejemplo: drawcuboid('FaceColorOnHover','g')

Visibilidad del identificador de ROI en la propiedad del elemento primario, especificada como el par separado por comas que consta de y uno de los valores de esta tabla.Children'HandleVisibility'

ValorDescripción
'on'El identificador de objeto siempre está visible (predeterminado).
'off'El identificador de objeto está oculto en todo momento.
'callback'El identificador de objeto es visible desde dentro de devoluciones de llamada o funciones invocadas por devoluciones de llamada, pero no desde dentro de las funciones invocadas desde la línea de comandos.

Interactividad del ROI, especificada como el par separado por comas que consta de y uno de los valores de esta tabla.'InteractionsAllowed'

ValorDescripción
'all'El ROI es totalmente interactuable (predeterminado).
'none'El ROI no es interactuable y no hay puntos de arrastre visibles.
'translate'El ROI se puede traducir (mover) dentro del área de dibujo, pero no cambiar de forma.

Etiqueta de ROI, especificada como el par separado por comas que consta de un vector de caracteres o una cadena.'Label' De forma predeterminada, esta propiedad se establece en una matriz vacía ( ) y el ROI no tiene ninguna etiqueta.''

Visibilidad de la etiqueta de ROI, especificada como el par separado por comas que consta de y uno de estos valores.'LabelVisible'

ValorDescripción
'on'La etiqueta es visible cuando el ROI está visible y la propiedad no está vacía (valor predeterminado).Label
'hover'

La etiqueta solo es visible cuando el ratón pasa el ratón sobre el ROI.

'off'La etiqueta no está visible.

Ancho de la arista del ROI, especificado como el par separado por comas que consta de un escalar numérico positivo en puntos.'LineWidth' El valor predeterminado es tres veces el número de puntos por píxel de pantalla.

Elemento primario del ROI, especificado como el par separado por comas que consta de y un objeto u.'Parent'AxesUIAxes Para obtener información sobre el uso de un ROI en un UIAxes, incluidas las limitaciones importantes, consulte .Uso de ROI en aplicaciones creadas con El Diseñador de aplicaciones

Posición del cuboide, especificada como el par separado por comas que consta de y una matriz de 1 por 6 de la forma, , , , , .'Position'[xminyminzminwidthheightdepth] Esta propiedad se actualiza automáticamente al dibujar o mover el cuboide.

Capacidad del cuboide que se va a girar, especificada como el par separado por comas que consta de y uno de los valores de esta tabla.'Rotatable'

ValorDescripción
'all'El ROI es totalmente giratorio.
'x' El ROI sólo se puede girar alrededor del ejex
'y'El ROI solo se puede girar alrededor del eje.y
'z'El ROI solo se puede girar alrededor del eje.z
'none'El ROI no es giratorio.

Angulo de rotación del ROI, especificado como el par separado por comas que consta de y una matriz numérica de 1 por 3 de ángulos de rotación, medidos en grados.'RotationAngle' La matriz de ángulos de rotación es de la forma, medida alrededor del -, -, y el eje, respectivamente.[x_angle y_angle z_angle]xyz La rotación se aplica sobre el centroide del ROI en este orden: , , .zyx

El valor de no afecta a los valores de . representa el cuboide antes de cualquier rotación.RotationAnglePositionPosition Al girar el cuboide, utilice para determinar la ubicación del ROI girado.Vertices

Capacidad de la rueda de desplazamiento para ajustar el tamaño del ROI, especificado como el par separado por comas que consta de y uno de los valores de esta tabla.'ScrollWheelDuringDraw'

ValorDescripción
'allresize'La rueda de desplazamiento afecta a todas las dimensiones del ROI.
'xresize' La rueda de desplazamiento solo afecta a la cota.x
'yresize' La rueda de desplazamiento solo afecta a la cota.y
'zresize' La rueda de desplazamiento solo afecta a la cota.z
'none'La rueda de desplazamiento no tiene ningún efecto.

Estado de selección del ROI, especificado como el par separado por comas que consta de y o .'Selected'truefalse También puede establecer este valor de forma interactiva. Por ejemplo, al hacer clic en el ROI se selecciona y se establece este valor en .true Del mismo modo, si el ROI, lo anula la selección y establece este valor en .Ctrl-clicfalse

Color del ROI cuando se selecciona, especificado como el par separado por comas que consta de y un .'SelectedColor'MATLABColorSpec (Color Specification) Si se establece en , el valor define el color del ROI para todos los estados, seleccionados o no.'SelectedColor''none'Color

Ejemplo: 'green'

Ejemplo: 'g'

Ejemplo: [0 1 0]

Color de la franja ROI, especificado como el par separado por comas que consta de ' y un valor.'StripeColorMATLABColorSpec (Color Specification) Si especifica , el borde del ROI se raya.'StripeColor' El rayado consta de una combinación del valor especificado por y este valor.'Color'

Ejemplo: 'green'

Ejemplo: 'g'

Ejemplo: [0 1 0]

Etiqueta que se va a asociar con el ROI, especificado como el par separado por comas que consta de un vector de caracteres o un escalar de cadena.'Tag' Utilice el valor de etiqueta para buscar el objeto ROI en una jerarquía de objetos mediante la función.findobj

Menú contextual, especificado como el par separado por comas que consta de y un objeto que crea mediante la función.'UIContextMenu'ContextMenuuicontextmenu Especifique este par nombre-valor para mostrar un menú contextual personalizado al hacer clic con el botón derecho en el ROI. Para crear un menú contextual personalizado, cree un objeto mediante la función y, a continuación, configure las propiedades del menú contextual.ContextMenuuicontextmenu

Datos que se asocian al ROI, especificados como el par separado por comas que consta de y cualquier dato.'UserData'MATLAB Por ejemplo, puede especificar un escalar, vector, matriz, matriz, matriz de celdas, cadena, matriz de caracteres, tabla o estructura. no utiliza estos datos.MATLAB

Esta propiedad es de solo lectura.

Ubicaciones de las esquinas del ROI cuboidal, especificadas como una matriz de 8 por 3. Cada fila es la -, -, y -coordenada de una esquina del ROI cuboidal.xyz

Visibilidad del ROI, especificada como el par separado por comas que consta de y uno de los valores de esta tabla.'Visible'

ValorDescripción
'on'Especifique este valor para mostrar el ROI (predeterminado).
'off'Especifique este valor para ocultar el ROI sin eliminarlo. Todavía puede acceder a las propiedades de un ROI oculto.

Argumentos de salida

contraer todo

Cuboidal ROI, devuelto como un objeto.Cuboid

Sugerencias

  • El ROI admite la siguiente interactividad, incluidos los métodos abreviados de teclado.

    ComportamientoAtajo de teclado
    Ajuste el tamaño del ROI durante el dibujo.Utilice la rueda de desplazamiento para realizar pequeños cambios en el tamaño del ROI durante el dibujo.
    Deje de dibujar el ROI.Pulse.Esc La función devuelve un objeto de ROI válido con un campo vacío.Position
    Cambie el tamaño (remodele) el ROI.

    Coloque el puntero en una de las caras visibles del cuboide y haga clic y arrastre la superficie. Es posible que tenga que girar el cuboide para seleccionar una superficie.

    Si pulsa , arrastrando el ratón mueve el ROI pero no cambia ninguna de las dimensiones.Cambio

    Mueva el ROI.

    Coloque el puntero en cualquiera de las superficies visibles del ROI y haga clic y arrastre mientras presiona .Cambio

    Coloque el puntero en cualquier superficie visible del ROI, haga clic con el botón derecho y seleccione .Lock Dimensions Haga clic y arrastre para mover el ROI.

    Elimine el ROI.Coloque el puntero sobre el ROI y haga clic con el botón derecho para ver su menú contextual. Seleccione en el menú.Delete Cuboid También puede eliminar el ROI mediante la función de objeto.delete
  • La función devuelve un objeto DE ROI.drawcuboidCuboid Después de la creación, utilice estas capacidades del objeto para personalizar la apariencia y el comportamiento del ROI.

    • Propiedades de objeto: los objetos de ROI admiten propiedades que modifican su apariencia o comportamiento. Por ejemplo, para cambiar el color de la a amarillo, establezca su propiedad, .roiColorroi.Color = 'yellow'

    • Funciones de objeto: los objetos de ROI admiten un conjunto de funciones de objeto que funcionan en los ROI. Por ejemplo, si desea pausar la línea de comandos de MATLAB después de crear un ROI, llame a la función object.wait

    • Notificaciones de eventos: los objetos de ROI pueden notificar al código cuando determinados eventos, como moverse o hacer clic, se producen en el ROI. Para recibir estas notificaciones, utilice la función de objeto para configurar eventos específicos.addlistenerOyentes En el agente de escucha, especifique un evento, como , y una función de devolución de llamada que se ejecuta cuando se produce el evento.'ROIMoved' Cuando el ROI notifica a la aplicación a través del agente de escucha, devuelve datos específicos del evento. Por ejemplo, con el evento, el objeto ROI devuelve su posición anterior y su posición actual.'ROIMoved'

    Para obtener un ejemplo del uso de detectores de eventos con el objeto, consulte .CuboidConfigurar el agente de escucha para los eventos de ROI de Cuboid Para obtener más información acerca de estas capacidades, consulte la documentación del objeto.Cuboid

Introducido en R2019a