Main Content

drawcrosshair

Crear roideos de cruz personalizables

Descripción

ejemplo

roi = drawcrosshair crea un objeto y permite el dibujo interactivo de la región de interés (ROI) en el punto de mira.Crosshair El ROI de la cruz se compone de dos líneas perpendiculares que son la anchura y altura completa de los ejes.

Para dibujar el ROI, mueva el cursor sobre los ejes y haga clic. Para obtener más información sobre el uso del ROI, incluidos los métodos abreviados de teclado y las opciones del menú contextual, consulte .Consejos

Nota

es una función de conveniencia para crear un objeto de ROI en cruz.drawcrosshair Si crea el objeto ROI directamente, llamando a , debe llamar a la función de objeto para habilitar el dibujo interactivo del ROI.Crosshairdraw Por el contrario, la función crea el objeto ROI y llama a la función de objeto por usted.drawcrosshairdraw Después de crear el ROI con cualquiera de las opciones, para personalizar su apariencia y comportamiento, debe usar propiedades de objeto, funciones de objeto y notificaciones de eventos. Para obtener más información sobre el uso de estas capacidades, consulte .Consejos

roi = drawcrosshair(ax,___) comienza la colocación interactiva de un ROI en los ejes especificados por .ax

ejemplo

roi = drawcrosshair(___,Name,Value) personaliza la apariencia y el comportamiento del ROI utilizando uno o más pares nombre-valor. Los pares nombre-valor no especificados se establecen en el valor predeterminado.

Ejemplos

contraer todo

En este ejemplo se muestra cómo crear un ROI de cruz tanto de forma interactiva como mediante programación.

Crear ROI de Crosshair

Lea una imagen en el espacio de trabajo y muéstrala.

figure; imshow('pears.png')

Cree un ROI de cruz en la imagen utilizando la función de forma interactiva.drawcrosshair Mueva el cursor sobre la imagen a cualquier lugar y haga clic para dibujar el ROI. Haga clic en el centro de ROI (el punto donde la línea horizontal cruza la línea vertical) para mover el ROI en la imagen.

h = drawcrosshair();

Crear ROI de Crosshair mediante programación

Lea una imagen en el espacio de trabajo y muéstrala.

figure; imshow('pears.png')

Cree un ROI de cruz en la imagen utilizando la función.drawcrosshair Utilice argumentos de par Nombre/Valor para especificar la posición inicial del ROI.

h = drawcrosshair('Position',[100 100]);

Modificar la apariencia del ROI en cruz mediante propiedades

Lea una imagen en el espacio de trabajo y muéstrala.

figure; imshow('pears.png')

Cree un ROI de cruz en la imagen utilizando la función.drawcrosshair Utilice argumentos de par Nombre/Valor para especificar la posición inicial del ROI.

h = drawcrosshair('Position',[100 100]);

Utilice las propiedades del objeto Crosshair para cambiar las líneas del ROI que se van a rayar. La función drawcrosshair devuelve un objeto que admite muchas propiedades.Crosshair Utilice la propiedad para especificar el color de la franja.StripeColor

h.StripeColor = 'green';

Lea una imagen en el espacio de trabajo y muéstrala.

img = imread('coins.png'); hAx = gca; imObj = imshow(img,'Parent',hAx); imObj.Parent.Visible = 'on';

Cree un ROI de cruz.

h = drawcrosshair('Parent',hAx,'Position',[50 50],'LineWidth',1,'Color','y');

Utilice la función de objeto para recibir una notificación cuando se mueva el ROI.addlistener Especifique la función de devolución de llamada que se ejecutará cuando se produzca el evento. Al mover el ROI en cruz, el código muestra la posición de la cruz en el título y muestra el valor de píxel en la ubicación de la etiqueta ROI.

addlistener(h,'MovingROI',@(src,data)displayInfo(src,data,hAx,img));

Esta es la función de devolución de llamada que muestra el valor del píxel especificado por el ROI de cruz.

function displayInfo(src,data,hAx,img) pos = ceil(data.CurrentPosition); pixval = img(pos(2),pos(1)); src.Label = mat2str(pixval); title(mat2str(pos)); end

Argumentos de entrada

contraer todo

Ejes primarios del ROI, especificados como un objeto o un objeto.AxesUIAxes Para obtener información sobre el uso de un ROI en un , incluidas las limitaciones importantes, consulte .UIAxesUso de ROI en aplicaciones creadas con El Diseñador de aplicaciones

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

Ejemplo: roi = drawcrosshair(gca,'Position',[1000 1000]);

Color de ROI, especificado como el par separado por comas que consta de y un valor.'Color'MATLAB®ColorSpec (Color Specification)

Ejemplo: 'green'

Ejemplo: 'g'

Ejemplo: [0 1 0]

El ROI se puede eliminar interactivamente a través de un menú contextual, especificado como el par separado por comas que consta de y un valor lógico de o .'Deletable'truefalse Cuando el valor es (predeterminado), puede eliminar el ROI a través del menú contextual.true Para deshabilitar este elemento de menú contextual, establezca en .'Deletable'false Cuando el valor se establece en , todavía puede eliminar el ROI llamando a la función, especificando el identificador para el ROI como entrada.falsedelete

Area de los ejes en los que puede dibujar un ROI, especificado como el par separado por comas que consta de y uno de los valores de esta tabla.'DrawingArea'

ValorDescripción
'auto'El área de dibujo es el límite de ejes actuales (predeterminado).
'unlimited'El área de dibujo no tiene contorno y los ROI se pueden dibujar o arrastrar para extenderse más allá de los límites de los ejes.
[x,y,w,h]El área de dibujo está restringida a un área rectangular. y especifique la esquina superior izquierda. y especifique el ancho y alto del rectángulo.xywh

Visibilidad del identificador de ROI en la propiedad del elemento primario, especificada como el par separado por comas que consta de y uno de los valores de esta tabla.Children'HandleVisibility'

ValorDescripción
'on'El identificador de objeto siempre está visible (predeterminado).
'off'El identificador de objeto está oculto en todo momento.
'callback'El identificador de objeto es visible desde dentro de devoluciones de llamada o funciones invocadas por devoluciones de llamada, pero no desde dentro de las funciones invocadas desde la línea de comandos.

Interactividad del ROI, especificada como el par separado por comas que consta de y uno de los valores de esta tabla.'InteractionsAllowed'

ValorDescripción
'all'El ROI es totalmente interactuable (predeterminado).
'none'El ROI no es interactuable y no hay puntos de arrastre visibles.

Etiqueta de ROI, especificada como el par separado por comas que consta de un vector de caracteres o una cadena.'Label' De forma predeterminada, esta propiedad se establece en una matriz vacía ( ) y el ROI no tiene ninguna etiqueta.''

Visibilidad de la etiqueta de ROI, especificada como el par separado por comas que consta de y uno de estos valores.'LabelVisible'

ValorDescripción
'on'La etiqueta es visible cuando el ROI está visible y la propiedad no está vacía (valor predeterminado).Label
'hover'

La etiqueta solo es visible cuando el ratón pasa el ratón sobre el ROI.

'off'La etiqueta no está visible.

Ancho de la arista del ROI, especificado como el par separado por comas que consta de un escalar numérico positivo en puntos.'LineWidth' El valor predeterminado es tres veces el número de puntos por píxel de pantalla.

Elemento primario del ROI, especificado como el par separado por comas que consta de y un objeto u.'Parent'AxesUIAxes Para obtener información sobre el uso de un ROI en un UIAxes, incluidas las limitaciones importantes, consulte .Uso de ROI en aplicaciones creadas con El Diseñador de aplicaciones

Posición del ROI, especificada como el par separado por comas que consta de una matriz numérica 1 por 2 del formulario.'Position'[x y] Los valores y especificar las coordenadas - y -de la ubicación donde la línea horizontal cruza la línea vertical en el ROI de cruz.xyxy Este valor cambia automáticamente al dibujar o mover el ROI.

Estado de selección del ROI, especificado como el par separado por comas que consta de y o .'Selected'truefalse También puede establecer este valor de forma interactiva. Por ejemplo, al hacer clic en el ROI se selecciona y se establece este valor en .true Del mismo modo, si el ROI, lo anula la selección y establece este valor en .Ctrl-clicfalse

Color del ROI cuando se selecciona, especificado como el par separado por comas que consta de y un .'SelectedColor'MATLABColorSpec (Color Specification) Si se establece en , el valor define el color del ROI para todos los estados, seleccionados o no.'SelectedColor''none'Color

Ejemplo: 'green'

Ejemplo: 'g'

Ejemplo: [0 1 0]

Color de la franja ROI, especificado como el par separado por comas que consta de ' y un valor.'StripeColorMATLABColorSpec (Color Specification) Si especifica , el borde del ROI se raya.'StripeColor' El rayado consta de una combinación del valor especificado por o y este valor.'Color''SelectedColor'

Ejemplo: 'green'

Ejemplo: 'g'

Ejemplo: [0 1 0]

Etiqueta que se va a asociar con el ROI, especificado como el par separado por comas que consta de un vector de caracteres o un escalar de cadena.'Tag' Utilice el valor de etiqueta para buscar el objeto ROI en una jerarquía de objetos mediante la función.findobj

Menú contextual, especificado como el par separado por comas que consta de y un objeto que crea mediante la función.'UIContextMenu'ContextMenuuicontextmenu Especifique este par nombre-valor para mostrar un menú contextual personalizado al hacer clic con el botón derecho en el ROI. Para crear un menú contextual personalizado, cree un objeto mediante la función y, a continuación, configure las propiedades del menú contextual.ContextMenuuicontextmenu

Datos que se asocian al ROI, especificados como el par separado por comas que consta de y cualquier dato.'UserData'MATLAB Por ejemplo, puede especificar un escalar, vector, matriz, matriz, matriz de celdas, cadena, matriz de caracteres, tabla o estructura. no utiliza estos datos.MATLAB

Visibilidad del ROI, especificada como el par separado por comas que consta de y uno de los valores de esta tabla.'Visible'

ValorDescripción
'on'Especifique este valor para mostrar el ROI (predeterminado).
'off'Especifique este valor para ocultar el ROI sin eliminarlo. Todavía puede acceder a las propiedades de un ROI oculto.

Argumentos de salida

contraer todo

ROI de cruz, devuelto como un objeto.Crosshair

Sugerencias

  • En esta tabla se describe cómo realizar tareas comunes con un ROI de cruz.

    TareaDescripción
    Cancele la operación de dibujo.Comience a dibujar el ROI y pulse antes de soltar el ratón.Esc La función devuelve un objeto de ROI válido con una propiedad vacía.Position
    Mueva el ROI.Coloque el puntero sobre el ROI. El puntero cambia a una forma de fleur. Haga clic y arrastre para mover el ROI.
    Elimine el ROI.Coloque el puntero sobre el ROI y haga clic con el botón derecho para ver su menú contextual. Seleccione en el menú.Delete Crosshair También puede eliminar el ROI mediante la función de objeto.delete
  • La función devuelve un objeto DE ROI.drawcrosshairCrosshair Después de la creación, utilice estas capacidades del objeto para personalizar la apariencia y el comportamiento del ROI.

    • Propiedades de objeto: los objetos de ROI admiten propiedades que modifican su apariencia o comportamiento. Por ejemplo, para cambiar el color de la a amarillo, establezca su propiedad, .roiColorroi.Color = 'yellow'

    • Funciones de objeto: los objetos de ROI admiten un conjunto de funciones de objeto que funcionan en los ROI. Por ejemplo, si desea pausar la línea de comandos de MATLAB después de crear un ROI, llame a la función object.wait

    • Notificaciones de eventos: los objetos de ROI pueden notificar al código cuando determinados eventos, como moverse o hacer clic, se producen en el ROI. Para recibir estas notificaciones, utilice la función de objeto para configurar eventos específicos.addlistenerOyentes En el agente de escucha, especifique un evento, como , y una función de devolución de llamada que se ejecuta cuando se produce el evento.'ROIMoved' Cuando el ROI notifica a la aplicación a través del agente de escucha, devuelve datos específicos del evento. Por ejemplo, con el evento, el objeto ROI devuelve su posición anterior y su posición actual.'ROIMoved'

    Para obtener un ejemplo del uso de detectores de eventos con el objeto, consulte .CrosshairValor de visualización del píxel especificado por el ROI de Crosshair Para obtener más información acerca de estas capacidades, consulte la documentación del objeto.Crosshair

Introducido en R2019b