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.

imfreehand

Crear región arrastrable a mano alzada

Descripción

Un objeto imfreehand encapsula una región interactiva de FreeHand a través de una imagen.

Puede añadir vértices y ajustar el tamaño y la posición del polígono mediante el ratón. El polígono 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 = imfreehand
h = imfreehand(hparent)
h = imfreehand(___,Name,Value)

Descripción

ejemplo

h = imfreehand inicia la colocación interactiva de una región de FreeHand en los ejes actuales y devuelve un objeto imfreehand .

h = imfreehand(hparent) inicia la colocación interactiva de una región de FreeHand en el objeto especificado por hparent.

h = imfreehand(___,Name,Value) especifica pares nombre-valor que controlan el comportamiento de la región de FreeHand.

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 .

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 la región de FreeHand. Consulte la ayuda de la función setPositionConstraintFcn para obtener información acerca de los identificadores de función válidos.

La región de FreeHand está cerrada, especificada como el par separado por comas consistente en 'Closed' y true o false. Cuando se establece en true (el valor predeterminado), imfreehand dibuja una línea recta para conectar los extremos de la línea FreeHand para crear una región cerrada. Si se establece en false, imfreehand deja la región abierta.

Tipos de datos: logical

Propiedades

expandir todo

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

Tipos de datos: logical

Uso

Cuando se llama a imfreehand con una sintaxis interactiva, el puntero cambia a una cruz de pelos cuando se coloca sobre una imagen. Haga clic y arrastre el ratón para dibujar la región de FreeHand y ajustar la posición de la región. De forma predeterminada, imfreehand dibuja una línea recta que conecta el último punto que dibujó con el primer punto, pero puede controlar este comportamiento mediante el parámetro Closed .

La región de FreeHand también es compatible con un menú contextual que se puede utilizar para controlar aspectos de su apariencia y comportamiento.

La tabla muestra las características interactivas soportadas por imfreehand.

Comportamiento interactivoDescripción
Mover la región.Mueva el puntero dentro de la región de FreeHand. El puntero cambia a una forma de flor . Haga clic y mantenga pulsado el botón izquierdo del ratón para mover la región.
Cambiar el color utilizado para dibujar la región. Mueva el puntero dentro de la región de FreeHand. Haga clic con el botón derecho y seleccione Set Color en el menú contextual.
Recuperando la posición actual de la región de FreeHand. Mueva el puntero dentro de la región de FreeHand. Haga clic con el botón derecho y seleccione Copy Position en el menú contextual. imfreehand copia una matriz n-por-2 de coordenadas en el límite del ROI al portapapeles.
Eliminación de la regiónMueva el puntero dentro de la región. 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 = imfreehand(); h.Deletable = false;

Funciones del objeto

Cada objeto imfreehand admite varios métodos. Escriba methods imfreehand 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
setClosedEstablecer el comportamiento de cierre del objeto ROI
setColorEstablecer color utilizado para dibujar el objeto ROI
setConstrainedPositionEstablecer objeto ROI en nueva posición
setPositionConstraintFcnDefinir función de restricción de posición del objeto ROI
waitBloquear línea de comandos MATLAB hasta que finalice la creación del ROI

Ejemplos

Haga clic y arrastre para colocar la región de FreeHand

Coloque de forma interactiva una región de interés cerrada a mano alzada haciendo clic y arrastrándola sobre una imagen.

imshow('pout.tif') h = imfreehand;    

Mueva la región de FreeHand de forma interactiva haciendo clic y arrastrándola. Utilice la función wait para bloquear la línea de comandos MATLAB® . Haga doble clic en la región de FreeHand para reanudar la ejecución de la línea de comandos MATLAB .

position = wait(h);  

Sugerencias

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

  • Para cancelar la colocación interactiva, pulse la tecla ESC. imfreehand devuelve un objeto vacío.

Introducido en R2007b