Contenido principal

imrect

(No recomendado) Crear un rectángulo que se pueda arrastrar

No se recomienda el uso de imrect. Utilice en su lugar el nuevo objeto de ROI Rectangle. También puede utilizar la nueva función de conveniencia de ROI drawrectangle. Para obtener más información, consulte Historial de versiones.

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 con el ratón. 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

Descripción

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

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

h = imrect(hparent,position) crea un rectángulo que se puede arrastrar en la posición position del objeto especificado por hparent.

ejemplo

h = imrect(___,"PositionConstraintFcn",fcn) también especifica a dónde se puede arrastrar el rectángulo utilizando una función de restricción de posición, fcn.

Argumentos de entrada

expandir todo

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

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

Función de restricción de posición, especificada como un identificador de función. Se llama a fcn siempre que se arrastra el ratón. Puede utilizar esta función para controlar a dónde puede arrastrarse la elipse. Para obtener información sobre identificadores de función válidos, consulte la ayuda para la función setPositionConstraintFcn.

Propiedades

expandir todo

La ROI se puede eliminar, especificado como true o false.

Tipos de datos: logical

Uso

Cuando llama a imrect con una sintaxis interactiva, el puntero cambia a un retículo cuando está sobre la imagen. Puede crear el rectángulo y ajustar el tamaño y la 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 secundario en el rectángulo para acceder a este menú contextual.

Blue rectangle displayed over an image, with draggable points to resize the rectangle and a context menu that gives options to copy the position, set the color, fix the aspect ratio, or delete the rectangle.

En esta tabla se enumeran los comportamientos interactivos compatibles con imrect.

Comportamiento interactivoDescripción
Mover 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. Mueva el puntero sobre cualquiera de los bordes o esquinas del rectángulo, la forma cambia a una flecha con dos extremos, . 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 secundario y seleccione Set Color en el menú contextual.
Recuperar las coordenadas de la posición actual.Mueva el puntero dentro del polígono. Haga clic con el botón secundario y seleccione Copy Position en el menú contextual. imrect copia un vector de posición de cuatro elementos en el portapapeles.
Mantener 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 secundario y seleccione Fix Aspect Ratio en el menú contextual.
Eliminar el rectángulo.Mueva el puntero dentro del rectángulo o sobre un borde del rectángulo. Haga clic con el botón secundario y seleccione Delete en el menú contextual. Para eliminar esta opción del menú contextual, establezca la propiedad Deletable en false: h = imrect(); h.Deletable = false;

Cuando utiliza setResizeable para hacer que no se pueda cambiar el tamaño del rectángulo, no se proporciona el elemento Fix Aspect Ratio del menú contextual.

Funciones del objeto

Cada objeto imrect admite varias funciones. Escriba methods imrect para ver una lista completa.

addNewPositionCallbackAdd new-position callback to ROI object
createMask(No recomendado) Crear una máscara dentro de una imagen
deleteDelete handle object
getColorObtener el color utilizado para dibujar un objeto de ROI
getPositionDevolver la posición actual de un objeto de ROI
getPositionConstraintFcnReturn function handle to current position constraint function
removeNewPositionCallbackRemove new-position callback from ROI object
resume(Not recommended) Resume execution of MATLAB command line
setColor(No recomendado) Establecer el color utilizado para dibujar un objeto de ROI
setConstrainedPositionSet ROI object to new position
setFixedAspectRatioModePreserve aspect ratio when resizing ROI object
setPosition(Not recommended) Move ROI object to new position
setPositionConstraintFcnSet position constraint function of ROI object
setResizableSet resize behavior of ROI object
wait(Not recommended) Block MATLAB command line until ROI creation is finished

Ejemplos

contraer todo

Muestre una ROI rectangular sobre una imagen. Muestre la posición del rectángulo en el título. El título se actualiza cuando mueve el rectángulo. Pruebe a 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 XLim e 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.

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

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

Sugerencias

Si utiliza imrect con unos ejes que contienen un objeto de imagen y no especifica una función de restricción de posición, los usuarios pueden arrastrar el rectángulo fuera de la extensión 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.

Historial de versiones

Introducido antes de R2006a

contraer todo