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.

impoly

Crear polígono arrastrable y redimensionable

no se recomienda.impoly Utilice el nuevo objeto en su lugar.Polygon También puede utilizar la nueva función de conveniencia de creación de ROI.drawpolygon Otra opción es el objeto, que le permite crear un polígono abierto o una forma.PolylinePolilínea Para obtener más información, consulte .Consideraciones de compatibilidad

Descripción

Un objeto encapsula un polígono interactivo sobre una imagen.impoly

Puede agregar vértices y ajustar el tamaño y la posición del polígono utilizando 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

Descripción

h = impoly comienza la colocación interactiva de un polígono en los ejes actuales y devuelve un objeto.impoly

h = impoly(hparent) comienza la colocación interactiva de un polígono en el objeto especificado por .hparent

ejemplo

h = impoly(hparent,position) crea un polígono arrastrable y redimensionable con vértices en coordenadas definidas por .position

ejemplo

h = impoly(___,Name,Value) especifica pares nombre-valor que controlan el comportamiento del polígono.

Argumentos de entrada

expandir todo

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

Posición de vértices poligonales, especificados como una matriz -by-2.n Las dos columnas definen la coordenada - y -, respectivamente, de cada uno de los vértices.xyn

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

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

El polígono está cerrado, especificado como el par separado por comas que consta de y o .'Closed'truefalse Cuando se establece en (valor predeterminado), crea un polígono cerrado, es decir, dibuja una línea recta entre el último vértice especificado y el primer vértice especificado para crear una región cerrada.trueimpoly Cuando es , no conecta el último vértice con el primer vértice, creando un polígono abierto (o polilínea).Closedfalseimpoly

Tipos de datos: logical

Propiedades

expandir todo

El ROI se puede eliminar, especificar como o .truefalse

Tipos de datos: logical

Uso

Cuando se llama con una sintaxis interactiva, el puntero cambia a un punto de miraimpolycuando sobre la imagen. Haga clic y arrastre el ratón para definir los vértices del polígono y ajustar el tamaño, la forma y la posición del polígono. De forma predeterminada, 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.impolyClosed

El polígono también admite un menú contextual que puede utilizar para controlar aspectos de su apariencia y comportamiento. Las opciones del menú contextual varían tanto si coloca el puntero en un borde del polígono (o en cualquier lugar dentro de la región) como en uno de los vértices. La figura muestra el menú contextual cuando el puntero está en el polígono pero no en un vértice.

La tabla enumera los comportamientos interactivos admitidos por .impoly

Comportamiento interactivoDescripción
Cerrando el polígono.

Utilice cualquiera de los siguientes mecanismos:

  • Mueva el puntero sobre el vértice inicial del polígono seleccionado. El puntero cambia a un círculo. Haga clic en cualquiera de los botones del ratón.

  • Haga doble clic en el botón izquierdo del ratón. Esta acción crea un vértice en el punto debajo del ratón y dibuja una línea recta que conecta este vértice con el vértice inicial.

  • Haga clic con el botón derecho del ratón. Esta acción dibuja una línea que conecta el último vértice seleccionado con el vértice inicial; no crea un nuevo vértice.

Agregar un nuevo vértice.Mueva el puntero sobre un borde del polígono. Mantenga pulsada la tecla .Un La forma del puntero cambia. Haga clic en el botón izquierdo del ratón para crear un nuevo vértice en esa posición en la línea.
Mover un vértice. (Remodelar el polígono.)Mueva el puntero sobre un vértice. El puntero cambia a un círculo. Haga clic y arrastre el vértice a su nueva posición.
Eliminación de un vértice.Mueva el puntero sobre un vértice. La forma cambia a un círculo. Haga clic con el botón derecho y seleccione en el menú contextual de vértices.Delete Vertex Esta acción elimina el vértice y ajusta la forma del polígono, dibujando una nueva línea recta entre los dos vértices que eran vecinos del vértice eliminado.
Eliminación del polígonoMueva el puntero dentro del polígono o en una de las líneas que definen el polígono, no en un vértice. Haga clic con el botón derecho y seleccione en el menú contextual.Delete Para quitar esta opción del menú contextual, establezca la propiedad en false:Deletableh = impoly(); h.Deletable = false;
Mover el polígono.Mueva el puntero dentro del polígono. El puntero cambia a una forma de fleur. Haga clic y arrastre el ratón para mover el polígono.
Cambiar el color del polígonoMueva el puntero dentro del polígono. Haga clic con el botón derecho y seleccione en el menú contextual.Set Color
Recuperar las coordenadas de los vértices Mueva el puntero dentro del polígono. Haga clic con el botón derecho y seleccione en el menú contextual. copia una matriz -by-2 que contiene las coordenadas - y -de cada vértice en el portapapeles. es el número de vértices que especificó.Copy Positionimpolynxyn

Funciones del objeto

Cada objeto admite una serie de métodos.impoly Escriba para ver una lista completa.methods impoly

addNewPositionCallbackAñadir devolución de llamada de nueva posición al objeto ROI
createMaskCrear máscara dentro de la imagen
deleteDelete handle object
getColorObtener el color utilizado para dibujar objetos de ROI
getPositionDevolver la posición actual del objeto ROI
getPositionConstraintFcnMango de función de retorno a la función de restricción de posición actual
removeNewPositionCallbackEliminar devolución de llamada de nueva posición del objeto ROI
resume(No recomendado) Reanudar la ejecución de la línea de comandosMATLAB
setClosedEstablecer el comportamiento de cierre del objeto ROI
setColorEstablecer el color utilizado para dibujar el objeto ROI
setConstrainedPositionEstablezca el objeto de ROI en una nueva posición
setPositionMover el objeto ROI a una nueva posición
setPositionConstraintFcnEstablecer la función de restricción de posición del objeto ROI
setVerticesDraggableEstablecer el comportamiento de vértices del objeto ROI
wait(No recomendado) Bloquear la línea de comandos hasta que finalice la creación del ROIMATLAB

Ejemplos

contraer todo

Mostrar una imagen.

imshow('gantrycrane.png')

Dibuje un polígono en la imagen, especificando la ubicación de cinco vértices.

h = impoly(gca,[188,30; 189,142; 93,141; 13,41; 14,29]);

Establezca el color del polígono en amarillo.

setColor(h,'yellow');

Defina una función para la nueva devolución de llamada de posición. Esta función muestra la posición actual del polígono cada vez que se mueve.

addNewPositionCallback(h, @(p) title(mat2str(p,3))); 

Cree la función que restringe el movimiento del polígono utilizando , especificando el límite de la imagen como límites.makeConstrainToRectFcn Aplique la función de restricción de contorno mediante .setPositionConstraintFcn

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

Visualizar imagen.

figure imshow('gantrycrane.png');

Cree un polígono, especificando varios vértices, pero déjelo sin terminar para que pueda terminarlo de forma interactiva. El ejemplo se establece en para que el polígono se deja abierto.Closedfalse Al mover el cursor sobre uno de los puntos finales del polígono, la forma del cursor cambia a un círculo.

h = impoly(gca,[203,30; 202,142; 294,142],'Closed',false); 

Complete el polígono. Coge uno de los extremos de las líneas existentes. Extienda la línea arrastrándola a otra esquina de la forma que desee crear. A continuación, mientras coloca el cursor sobre la línea, mantenga pulsada la tecla para añadir un vértice a la línea.A Una vez creado el vértice, puede arrastrarlo a cualquier lugar que desee para crear la forma que desee. Continúe arrastrando la línea y agregando vértices como desee. Para obtener más información, consulte .Uso

Sugerencias

Si utiliza con un eje que contiene un objeto de imagen y no especifica una función de restricción de posición, los usuarios pueden arrastrar el polígono fuera de la extensión de la imagen y perder el polígono.impoly Cuando se utiliza con un eje creado por la función, los límites de los ejes se expanden automáticamente cuando el polígono se arrastra fuera de la extensión de los ejes.plot

Consideraciones de compatibilidad

expandir todo

No se recomienda a partir de R2018b

Introducido en R2007b