Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

imrect

Crear rectángulo arrastrable

Descripción

Un objeto imrect encapsula un rectángulo interactivo sobre una imagen.

Puede ajustar el tamaño y la posición del rectángulo utilizando el mouse. El rectángulo también tiene un menú contextual que controla aspectos de su apariencia y comportamiento. Para obtener más información, consulte Uso.

Creación

Sintaxis

h = imrect
h = imrect(hparent)
h = imrect(hparent,position)
h = imrect(___,Name,Value)

Descripción

h = imrect inicia la colocación interactiva de un rectángulo en los ejes actuales y devuelve un objeto imrect .

h = imrect(hparent) inicia la colocación interactiva de un rectángulo en el objeto especificado por hparent.

ejemplo

h = imrect(hparent,position) crea un rectángulo arrastrable en la posición position en el objeto especificado por hparent.

h = imrect(___,Name,Value) especifica pares nombre-valor que controlan el comportamiento del rectángulo.

Argumentos de entrada

expandir todo

Identificador del objeto primario, especificado como identificador. El elemento primario es normalmente un objeto de ejes, pero también puede ser cualquier otro objeto que pueda ser el elemento primario de un objeto hggroup .

Posición del rectángulo, especificada como un vector de 4 elementos del formulario [xmin ymin width height]. El tamaño inicial del rectángulo es width-por-height, y la esquina superior izquierda del rectángulo se encuentra en la coordenada (x, y) (xmin,ymin).

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos Name,Value . Name es el nombre del argumento y Value es el valor correspondiente. Name debe aparecer dentro de comillas simples (' '). Puede especificar varios argumentos de par de nombre y valor en cualquier orden como Name1,Value1,...,NameN,ValueN.

Función de restricción de posición, especificada como el par separado por comas consistente en 'PositionConstraintFcn' y un identificador de función. fcn se llama cada vez que se arrastra el mouse. Puede utilizar esta función para controlar dónde se puede arrastrar el rectángulo. Consulte la ayuda de la función setPositionConstraintFcn para obtener información acerca de los identificadores de función válidos.

Propiedades

expandir todo

El ROI puede ser eliminado, especificado como true o false.

Tipos de datos: logical

Uso

Cuando se llama a imrect con una sintaxis interactiva, el puntero cambia a una cruz de pelos cuando sobre la imagen. Puede crear el rectángulo y ajustar su tamaño y posición con el ratón. El rectángulo también admite un menú contextual que puede utilizar para controlar aspectos de su apariencia y comportamiento. Haga clic con el botón derecho en el rectángulo para acceder a este menú contextual.

La tabla enumera los comportamientos interactivos soportados por imrect.

Comportamiento interactivoDescripción
Moviendo el rectángulo.Mueva el puntero dentro del rectángulo. El puntero cambia a una forma de flor . Haga clic y arrastre el ratón para mover el rectángulo.
Cambiar el tamaño del rectángulo. Mover el puntero sobre cualquiera de los bordes o esquinas del rectángulo, la forma cambia a una flecha de dos puntas, . Haga clic y arrastre el borde o la esquina con el ratón.
Cambiar el color del rectángulo.Mueva el puntero dentro del rectángulo. Haga clic con el botón derecho y seleccione Set Color en el menú contextual.
Recuperar las coordenadas de la posición actualMueva el puntero dentro del polígono. Haga clic con el botón derecho y seleccione Copy Position en el menú contextual. imrect copia un vector de posición de cuatro elementos en el portapapeles.
Conservar la relación de aspecto actual del rectángulo durante el cambio de tamaño interactivo. Mueva el puntero dentro del rectángulo. Haga clic con el botón derecho y seleccione Fix Aspect Ratio en el menú contextual.
Eliminar el rectánguloMueva el puntero dentro del rectángulo o en un borde del rectángulo. Haga clic con el botón derecho y seleccione Delete en el menú contextual. Para quitar esta opción del menú contextual, establezca la propiedad Deletable en false: h = imrect(); h.Deletable = false;

Cuando utiliza setResizeable para hacer que el rectángulo no sea redimensionado, no se proporciona el elemento de menú contextual Fix Aspect Ratio .

Funciones del objeto

Cada objeto imrect admite varios métodos. Escriba methods imrect para ver una lista completa.

addNewPositionCallbackAgregar devolución de llamada de nueva posición al objeto ROI
createMaskCrear máscara dentro de la imagen
deleteDelete handle object
getColorObtener color utilizado para dibujar el objeto ROI
getPositionDevolver la posición actual del objeto ROI
getPositionConstraintFcnControlador de función de retorno a la función de restricción de posición actual
removeNewPositionCallbackQuitar devolución de llamada de nueva posición del objeto ROI
resumeReanudar la ejecución de la línea de comandos MATLAB
setColorEstablecer color utilizado para dibujar el objeto ROI
setConstrainedPositionEstablecer objeto ROI en nueva posición
setFixedAspectRatioModeConservar relación de aspecto al cambiar el tamaño del objeto ROI
setPositionMover el objeto ROI a nueva posición
setPositionConstraintFcnDefinir función de restricción de posición del objeto ROI
setResizableEstablecer el comportamiento de redimensionamiento del objeto ROI
waitBloquear línea de comandos MATLAB hasta que finalice la creación del ROI

Ejemplos

Actualizar título cuando se mueve el rectángulo

Mostrar un rectángulo de ROI sobre una imagen. Muestra la posición del rectángulo en el título. El título se actualiza al mover el rectángulo. Intente arrastrar un lado del rectángulo fuera del límite de la imagen.

imshow('cameraman.tif') h = imrect(gca,[10 10 100 100]); addNewPositionCallback(h,@(p) title(mat2str(p,3)));

Especifique una función de restricción de posición utilizando makeConstrainToRectFcn para mantener el rectángulo dentro de los intervalos de XLim y YLim originales de la imagen.

fcn = makeConstrainToRectFcn('imrect',get(gca,'XLim'),get(gca,'YLim')); setPositionConstraintFcn(h,fcn); 

Ahora arrastre el rectángulo con el ratón. Observe que el rectángulo ya no puede extenderse más allá del límite de la imagen.

Haga clic y arrastre para colocar rectángulo

Coloque de forma interactiva un rectángulo haciendo clic y arrastrándolo. Utilice wait para bloquear la línea de comandos MATLAB® . Haga doble clic en el rectángulo para reanudar la ejecución de la línea de comandos MATLAB .

imshow('pout.tif'); h = imrect; position = wait(h);

Sugerencias

Si utiliza imrect con un eje que contiene un objeto Image y no especifica una función de restricción de posición, los usuarios pueden arrastrar el rectángulo fuera del alcance de la imagen. Cuando se utiliza con un eje creado por la función plot , los límites de los ejes se expanden automáticamente para adaptarse al movimiento del rectángulo.

Introducido antes de R2006a