Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Rectángulo

Región de interés rectangular

Descripción

Un objeto Rectangle especifica la forma y la posición de una región de interés (ROI) rectangular. Puede personalizar la apariencia y el comportamiento interactivo de la ROI.

Para obtener más información sobre el uso de esta ROI, incluidos los atajos de teclado, consulte Consejos.

Blue Rectangle ROI drawn over an object in an image.

Creación

Hay dos formas de crear un objeto Rectangle. Para obtener más información, consulte Crear formas para definir ROI.

  • Utilice la función drawrectangle. Utilice esta función cuando desee crear la ROI y establecer la apariencia en un único comando. Puede especificar la forma y la posición de la ROI de forma interactiva dibujándola sobre una imagen con el ratón o de forma programática utilizando argumentos nombre-valor.

  • Utilice la función images.roi.Rectangle aquí descrita. Utilice esta función si desea especificar la apariencia y el comportamiento de la ROI antes de especificar la forma y la posición de la ROI. Después de crear el objeto, puede especificar la forma y la posición de forma interactiva utilizando la función draw o de forma programática modificando propiedades del objeto.

Descripción

ejemplo

roi = images.roi.Rectangle crea un objeto Rectangle con propiedades predeterminadas.

roi = images.roi.Rectangle(ax) crea una ROI en los ejes especificados por ax.

roi = images.roi.Rectangle(___,Name,Value) establece propiedades utilizando argumentos nombre-valor. Puede especificar varios argumentos nombre-valor.

Ejemplo: images.roi.Rectangle("Color","y") crea un objeto Rectangle de color amarillo.

Argumentos de entrada

expandir todo

El objeto principal de la ROI, especificado como objeto Axes u objeto UIAxes. Para obtener información sobre el uso de una ROI en un UIAxes, incluidas limitaciones importantes, consulte Utilizar ROI en apps creadas con App Designer.

Propiedades

expandir todo

Relación de aspecto del rectángulo, especificada como número positivo. El valor de esta propiedad cambia automáticamente cuando dibuja o redimensiona el rectángulo. El objeto Rectangle calcula este valor como height/width.

Color de la ROI, especificado como triplete RGB, nombre de color o nombre corto de color.

Puede especificar cualquier color utilizando un triplete RGB. Un triplete RGB es un vector fila de 3 elementos cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el intervalo [0, 1].

Puede especificar algunos colores habituales por su nombre como un escalar de cadena o un vector de caracteres. En esta tabla se enumeran las opciones de color con nombre y los tripletes RGB equivalentes.

Nombre del colorNombre cortoTriplete RGBApariencia
"red""r"[1 0 0]

A rectangle colored pure red

"green""g"[0 1 0]

A rectangle colored pure green

"blue""b"[0 0 1]

A rectangle colored pure blue

"cyan" "c"[0 1 1]

A rectangle colored pure cyan

"magenta""m"[1 0 1]

A rectangle colored pure magenta

"yellow""y"[1 1 0]

A rectangle colored pure yellow

"black""k"[0 0 0]

A rectangle colored black

"white""w"[1 1 1]

A rectangle colored white

Aquí están los tripletes RGB para los colores por defecto que MATLAB® utiliza en muchos tipos de gráficas.

Triplete RGBApariencia
[0 0.4470 0.7410]

A rectangle colored medium blue

[0.8500 0.3250 0.0980]

A rectangle colored reddish-orange

[0.9290 0.6940 0.1250]

A rectangle colored dark yellow

[0.4940 0.1840 0.5560]

A rectangle colored dark purple

[0.4660 0.6740 0.1880]

A rectangle colored light green

[0.3010 0.7450 0.9330]

A rectangle colored light blue

[0.6350 0.0780 0.1840]

A rectangle colored dark red

Ejemplo: "Color","r"

Ejemplo: "Color","green"

Ejemplo: "Color",[0 0.4470 0.7410]

Menú contextual que aparece al hacer clic con el botón secundario en la ROI, especificado como objeto ContextMenu. Puede crear un menú contextual personalizado utilizando la función uicontextmenu y configurando después las propiedades del menú contextual.

El menú contextual proporciona una opción para eliminar la ROI, especificada como un 1 numérico o lógico (true) o un 0 (false). Cuando el valor es true, puede eliminar la ROI de forma interactiva mediante el menú contextual. Cuando el valor es false, la opción del menú contextual para eliminar la ROI está desactivada.

En ambos casos, puede eliminar la ROI fuera del menú contextual utilizando la función delete.

Área de los ejes en la que puede colocar de forma interactiva la ROI, especificada como uno de los valores de esta tabla.

ValorDescripción
"auto"El área de dibujo son los límites actuales de los ejes (valor predeterminado).
"unlimited"El área de dibujo no tiene límites y las ROI se pueden dibujar o arrastrar para que se extiendan más allá de los límites de los ejes.
[x,y,w,h]El área de dibujo se restringe a una región rectangular que comienza en (x, y) y se extiende hasta w de ancho y h de alto.

Transparencia de la cara de la ROI, especificada como número en el intervalo [0, 1]. Cuando el valor es 1, la cara de la ROI es completamente opaca. Cuando el valor es 0, la cara de la ROI es completamente transparente.

La cara de la ROI puede capturar clics, especificado como un 1 numérico o lógico (true) o un 0 (false). Cuando el valor es true, la cara de la ROI captura los clics del ratón. Cuando el valor es false, la cara de la ROI no captura los clics del ratón.

La relación de aspecto permanece constante durante la interacción, especificado como un 0 numérico y lógico (false) o un 1 (true). Cuando el valor es true, la relación de aspecto permanece constante al dibujar o redimensionar la ROI. Cuando el valor es false, puede cambiar la relación de aspecto al dibujar o redimensionar la ROI. Puede cambiar el estado de esta propiedad usando el menú contextual predeterminado.

Visibilidad del identificador de la ROI en la propiedad Children del objeto principal, especificada como uno de los valores de esta tabla.

ValorDescripción
"on"El identificador del objeto está siempre visible (valor predeterminado).
"off"El identificador del objeto está oculto en todo momento.
"callback" El identificador del objeto está visible desde los callbacks o funciones llamadas por callbacks, pero no desde las funciones llamadas desde la línea de comandos.

Interactividad de la ROI, especificada como uno de los valores de esta tabla.

ValorDescripción
"all"La ROI es totalmente interactiva.
"none"La ROI no es interactiva y no hay puntos de arrastre visibles.
"translate"La ROI se puede desplazar dentro del área de dibujo.

Etiqueta de la ROI, especificada como vector de caracteres o escalar de cadena. De forma predeterminada, la ROI no tiene etiqueta ('').

Transparencia del fondo del texto, especificada como número en el intervalo [0, 1]. Cuando se establece en 1, el fondo del texto es completamente opaco. Cuando se establece en 0, el fondo del texto es completamente transparente.

Color del texto de la etiqueta, especificado como triplete RGB, nombre de color o nombre corto de color.

Puede especificar cualquier color utilizando un triplete RGB. Un triplete RGB es un vector fila de 3 elementos cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el intervalo [0, 1].

Puede especificar algunos colores habituales por su nombre como un escalar de cadena o un vector de caracteres. En esta tabla se enumeran las opciones de color con nombre y los tripletes RGB equivalentes.

Nombre del colorNombre cortoTriplete RGBApariencia
"red""r"[1 0 0]

A rectangle colored pure red

"green""g"[0 1 0]

A rectangle colored pure green

"blue""b"[0 0 1]

A rectangle colored pure blue

"cyan" "c"[0 1 1]

A rectangle colored pure cyan

"magenta""m"[1 0 1]

A rectangle colored pure magenta

"yellow""y"[1 1 0]

A rectangle colored pure yellow

"black""k"[0 0 0]

A rectangle colored black

"white""w"[1 1 1]

A rectangle colored white

Aquí están los tripletes RGB para los colores por defecto que MATLAB utiliza en muchos tipos de gráficas.

Triplete RGBApariencia
[0 0.4470 0.7410]

A rectangle colored medium blue

[0.8500 0.3250 0.0980]

A rectangle colored reddish-orange

[0.9290 0.6940 0.1250]

A rectangle colored dark yellow

[0.4940 0.1840 0.5560]

A rectangle colored dark purple

[0.4660 0.6740 0.1880]

A rectangle colored light green

[0.3010 0.7450 0.9330]

A rectangle colored light blue

[0.6350 0.0780 0.1840]

A rectangle colored dark red

Ejemplo: "LabelTextColor","r"

Ejemplo: "LabelTextColor","green"

Ejemplo: "LabelTextColor",[0 0.4470 0.7410]

Visibilidad de la etiqueta de la ROI, especificada como uno de estos valores:

ValorDescripción
'on'La etiqueta está visible cuando la ROI también lo está y la propiedad Label no está vacía (valor predeterminado).
'hover'La etiqueta solo está visible cuando se pasa el ratón por encima de la ROI.
'inside'La etiqueta solo está visible cuando hay espacio suficiente dentro de la ROI para mostrarla.
'off'La etiqueta no está visible.

Ancho del borde de la ROI, especificado como número positivo en puntos. El valor predeterminado es tres veces el número de puntos por píxel de pantalla, de modo que el borde tiene tres píxeles de ancho.

Tamaño del marcador, especificado como número positivo en puntos. El valor predeterminado es ocho veces el número de puntos por píxel de pantalla, de modo que los marcadores tienen un tamaño de ocho píxeles.

Objeto principal de la ROI, especificado como Axes o UIAxes. Para obtener información sobre el uso de una ROI en un UIAxes, incluidas limitaciones importantes, consulte Utilizar ROI en apps creadas con App Designer.

Posición de la ROI, especificada como un vector numérico de 1 por 4 de la forma [xmin, ymin, width, height]. xmin e ymin especifican la ubicación de la esquina superior izquierda del rectángulo. width y height especifican la extensión del rectángulo en dos dimensiones.

El rectángulo se puede rotar, especificado como un 0 (false) o un 1 (true) numérico o lógico. Cuando el valor es false (predeterminado), el rectángulo no puede rotarse. Cuando el valor es true, puede girar el rectángulo haciendo clic cerca de los marcadores de las esquinas.

Ángulo alrededor del centro del rectángulo, especificado como escalar numérico. El ángulo se mide en grados en el sentido de las agujas del reloj. El valor de esta propiedad cambia automáticamente cuando dibuja o mueve la ROI.

El valor de RotationAngle no influye en los valores de la propiedad Position. La propiedad Position representa la posición inicial de la ROI, antes de la rotación. Para determinar la ubicación de una ROI rotada, utilice la propiedad Vertices.

Estado de selección de la ROI, especificado como un 0 numérico o lógico (false) o un 1 (true). También puede establecer esta propiedad de forma interactiva. Por ejemplo, haciendo clic en la ROI se selecciona la ROI y se establece esta propiedad en true. De forma similar, pulsando la tecla Ctrl y haciendo clic en la ROI se quita la selección de la ROI y se establece el valor de esta propiedad en false.

Color de la ROI cuando se selecciona, especificado como triplete RGB, nombre de color, nombre corto de color o "none". Si especifica "none", el valor de Color define el color de la ROI en todos los estados, seleccionados o no.

Puede especificar cualquier color utilizando un triplete RGB. Un triplete RGB es un vector fila de 3 elementos cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el intervalo [0, 1].

Puede especificar algunos colores habituales por su nombre como un escalar de cadena o un vector de caracteres. En esta tabla se enumeran las opciones de color con nombre y los tripletes RGB equivalentes.

Nombre del colorNombre cortoTriplete RGBApariencia
"red""r"[1 0 0]

A rectangle colored pure red

"green""g"[0 1 0]

A rectangle colored pure green

"blue""b"[0 0 1]

A rectangle colored pure blue

"cyan" "c"[0 1 1]

A rectangle colored pure cyan

"magenta""m"[1 0 1]

A rectangle colored pure magenta

"yellow""y"[1 1 0]

A rectangle colored pure yellow

"black""k"[0 0 0]

A rectangle colored black

"white""w"[1 1 1]

A rectangle colored white

Aquí están los tripletes RGB para los colores por defecto que MATLAB utiliza en muchos tipos de gráficas.

Triplete RGBApariencia
[0 0.4470 0.7410]

A rectangle colored medium blue

[0.8500 0.3250 0.0980]

A rectangle colored reddish-orange

[0.9290 0.6940 0.1250]

A rectangle colored dark yellow

[0.4940 0.1840 0.5560]

A rectangle colored dark purple

[0.4660 0.6740 0.1880]

A rectangle colored light green

[0.3010 0.7450 0.9330]

A rectangle colored light blue

[0.6350 0.0780 0.1840]

A rectangle colored dark red

Ejemplo: "SelectedColor","r"

Ejemplo: "SelectedColor","green"

Ejemplo: "SelectedColor",[0 0.4470 0.7410]

Color del borde de la ROI, especificado como triplete RGB, nombre de color, nombre corto de color o "none". Si especifica "none", el borde de la ROI es un color sólido especificado por Color. De lo contrario, el borde de la ROI aparece a rayas, con colores que van alternando entre los especificados por Color y StripeColor.

Puede especificar cualquier color utilizando un triplete RGB. Un triplete RGB es un vector fila de 3 elementos cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el intervalo [0, 1].

Puede especificar algunos colores habituales por su nombre como un escalar de cadena o un vector de caracteres. En esta tabla se enumeran las opciones de color con nombre y los tripletes RGB equivalentes.

Nombre del colorNombre cortoTriplete RGBApariencia
"red""r"[1 0 0]

A rectangle colored pure red

"green""g"[0 1 0]

A rectangle colored pure green

"blue""b"[0 0 1]

A rectangle colored pure blue

"cyan" "c"[0 1 1]

A rectangle colored pure cyan

"magenta""m"[1 0 1]

A rectangle colored pure magenta

"yellow""y"[1 1 0]

A rectangle colored pure yellow

"black""k"[0 0 0]

A rectangle colored black

"white""w"[1 1 1]

A rectangle colored white

Aquí están los tripletes RGB para los colores por defecto que MATLAB utiliza en muchos tipos de gráficas.

Triplete RGBApariencia
[0 0.4470 0.7410]

A rectangle colored medium blue

[0.8500 0.3250 0.0980]

A rectangle colored reddish-orange

[0.9290 0.6940 0.1250]

A rectangle colored dark yellow

[0.4940 0.1840 0.5560]

A rectangle colored dark purple

[0.4660 0.6740 0.1880]

A rectangle colored light green

[0.3010 0.7450 0.9330]

A rectangle colored light blue

[0.6350 0.0780 0.1840]

A rectangle colored dark red

Ejemplo: "StripeColor","r"

Ejemplo: "StripeColor","green"

Ejemplo: "StripeColor",[0 0.4470 0.7410]

Etiqueta que se asocia a la ROI, especificada como vector de caracteres o escalar de cadena. Use el valor de la etiqueta para encontrar el objeto de ROI en una jerarquía de objetos utilizando la función findobj.

Datos que se asocian a la ROI, especificados como cualquier dato de MATLAB. Por ejemplo, puede especificar un escalar, un vector, una matriz, un arreglo de celdas, una cadena, un arreglo de caracteres, una tabla o una estructura. El objeto Rectángulo no usa estos datos.

Esta propiedad o parámetro es de solo lectura.

Ubicaciones de los puntos de las esquinas de la ROI, devueltas como matriz numérica de 4 por 2.

Visibilidad de la ROI, especificada como "on" u "off", o como un 1 numérico o lógico (true) o un 0 (false). El valor "on" equivale a true y "off" equivale a false. El valor se almacena como un valor lógico on/off de tipo OnOffSwitchState.

ValorDescripción
"on"Muestra la ROI.
"off"Oculta la ROI sin eliminarla. Es posible acceder a las propiedades de una ROI invisible.

Funciones del objeto

addlistenerCreate event listener bound to event source
beginDrawingFromPointBegin drawing ROI from specified point
bringToFrontBring ROI to front of Axes stacking order
createMaskCrear una imagen de máscara binaria a partir de una ROI
drawIniciar dibujo de ROI de forma interactiva
inROIQuery if points are located in ROI
waitBlock MATLAB command line until ROI operation is finished

Ejemplos

contraer todo

Lea una imagen en el área de trabajo y muéstrela.

I = imread('baby.jpg');
figure
imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

Cree una ROI rectangular en la imagen utilizando el parámetro Position para especificar la ubicación y el tamaño. En el ejemplo también se especifica que el borde del rectángulo es una línea discontinua. Para ROI creadas de forma programática, si desea que la ROI se dibuje en unos ejes concretos, deberá especificar esos ejes como argumento de entrada. De lo contrario, se crea una instancia de la clase images.roi.Rectangle, pero no se muestra. En este ejemplo, especifique los ejes actuales (gca) para dibujar la ROI en la imagen en esos ejes.

h = images.roi.Rectangle(gca,'Position',[500,500,1000,1000],'StripeColor','r');

Figure contains an axes object. The axes object contains 2 objects of type image, images.roi.rectangle.

Lea y muestre la imagen.

I = imread("cameraman.tif");
imshow(I)

Cree una ROI rectangular en el mismo eje que la imagen y, después, añada receptores para eventos de ROI en movimiento.

roi = images.roi.Rectangle(gca);
addlistener(roi,"MovingROI",@allevents);
addlistener(roi,"ROIMoved",@allevents);

Dibuje la ROI rectangular de forma interactiva. Después, invoque la función de callback allevents moviendo la ROI. Cuando mueve la ROI, los receptores envían notificaciones de estos eventos y ejecutan la función de callback.

draw(roi)

La función de callback allevents muestra en la línea de comandos la posición anterior y la posición actual de la ROI.

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

Más acerca de

expandir todo

Sugerencias

  • Para dibujar la ROI de forma interactiva utilizando las funciones draw o drawrectangle, sitúe el cursor sobre los ejes y haga clic y arrastre para crear la forma. Para completarla, suelte el ratón.

  • La ROI admite la siguiente interactividad, incluidos los atajos de teclado.

    ComportamientoAtajo de teclado
    Cancelar el dibujo de la ROI.Pulse Esc. La función devuelve un objeto de ROI válido con una propiedad Position vacía.
    Redimensionar (remodelar) la ROI.

    Sitúe el cursor sobre un vértice y, luego, haga clic y arrastre. El rectángulo tiene vértices en cada esquina y en el punto medio de cada lado. Para conservar la relación de aspecto al redimensionar, pulse la tecla Mayús. Para bloquear la relación de aspecto, utilice la opción Fix Aspect Ratio del menú contextual que se abre al hacer clic con el botón secundario.

    Mover la ROI.Sitúe el cursor sobre la ROI. El cursor cambia a una forma de flor. Haga clic y arrastre la ROI.
    Eliminar la ROI.Sitúe el puntero sobre el rectángulo, haga clic con el botón secundario y seleccione Delete Rectangle en el menú contextual. También puede eliminar la ROI de forma programática utilizando la función delete.
  • Para obtener información sobre el uso de una ROI en una app creada con App Designer, consulte Utilizar ROI en apps creadas con App Designer.

Historial de versiones

Introducido en R2018b

expandir todo