Main Content

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.

Freehand

Región de interés a mano alzada

Descripción

es un objeto de región de interés (ROI) dibujado a mano.Freehand

Para dibujar el ROI, coloque el cursor sobre la imagen y haga clic y arrastre para dibujar la forma del ROI. Para finalizar el ROI, suelte el botón del ratón. Para obtener más información sobre el uso de un ROI a mano alzada, incluidos los métodos abreviados de teclado, consulte .Consejos

Creación

Descripción

Para crear un objeto, utilice la función de creación.Freehandimages.roi.Freehand Después de crear el objeto, llame a la función de objeto para comenzar a dibujar.draw Como comodidad, también puede utilizar la función para crear un ROI.drawfreehandFreehand La función crea el objeto ROI y llama a la función de objeto por usted.drawfreehanddraw

ejemplo

roi = images.roi.Freehand crea una instancia de la clase con propiedades predeterminadas.images.roi.Freehand

roi = images.roi.Freehand(ax) crea el ROI en los ejes especificados por .ax

roi = images.roi.Freehand(___,Name,Value) establece utilizando pares nombre-valor.Propiedades Por ejemplo, establece el color del objeto en amarillo.images.roi.Freehand('Color','y')Freehand Puede especificar varios pares nombre-valor. Incluya cada nombre de propiedad entre comillas simples.

Argumentos de entrada

expandir todo

Padre del ROI, especificado como un objeto u objeto.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

Propiedades

expandir todo

Cierre el ROI a mano alzada, especificado como un valor lógico o .truefalse Si (predeterminado), cierra automáticamente el ROI conectando el último punto dibujado al primer punto dibujado cuando indica que ha terminado de dibujar.trueimages.roi.Freehand

COLOR de ROI, especificado como un archivo .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 o .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 esta propiedad en .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 colocar interactivamente el ROI, especificado como uno de los valores de esta tabla.

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 una región rectangular que comienza en ( , ), y se extiende hasta anchura y altura.xywh

Transparencia de la cara del ROI, especificada como un valor escalar numérico en el intervalo .[0 1] Cuando el valor es , la cara de ROI es totalmente opaca.1 Cuando el valor es , la cara del ROI es completamente transparente.0

La cara del ROI puede capturar clics, especificados como o .truefalse Cuando (predeterminado), la cara del ROI captura los clics del ratón.true Cuando , la cara del ROI no captura los clics del ratón.false

Visibilidad del identificador de ROI en la propiedad del elemento primario, especificada como uno de los valores de esta tabla.Children

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 uno de los valores de esta tabla.

ValorDescripción
'all'El ROI es totalmente interactuable (predeterminado).
'none'El ROI no es interactuable y no hay puntos de arrastre visibles.
'translate'El ROI se puede traducir (mover) dentro del área de dibujo, pero no cambiar de forma.
'reshape'El ROI se puede remodelar pero no traducir.

Etiqueta de ROI, especificada como vector de caracteres o cadena. De forma predeterminada, el ROI no tiene ninguna etiqueta ( ).''

Visibilidad de la etiqueta ROI, especificada como uno de estos valores:

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.

Anchura de la arista del ROI, especificada como un escalar numérico positivo en puntos. El valor predeterminado es tres veces el número de puntos por píxel de pantalla.

Controle el estilo de dibujo a mano alzada durante la colocación interactiva, especificado como el valor lógico o .truefalse Cuando el valor es (el valor predeterminado), un solo clic y el gesto de arrastre completa el ROI a mano alzada.false Cuando el valor es , se pueden combinar varios gestos de clic y arrastre con bordes rectos para crear una forma de ROI a mano alzada más compleja.true

ROI primario, especificado como un objeto u objeto.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 una matriz numérica -by-2 del formulario, donde está el número de puntos.n[x1 y1;...;xn yn]n Cada fila especifica la posición de un punto que define el ROI. genera estos puntos a medida que dibuja la forma de ROI.Freehand Para trabajar con menos puntos, utilice la función de objeto.reduce

Estado de selección del ROI, especificado como el valor lógico o .truefalse También puede establecer esta propiedad de forma interactiva. Por ejemplo, al hacer clic en el ROI se selecciona el ROI y se establece esta propiedad en .true Del mismo modo, al presionar la tecla y hacer clic en el ROI se anula la selección del ROI y se establece el valor de esta propiedad en .Ctrlfalse

Color del ROI cuando se selecciona, especificado como un archivo .MATLABColorSpec (Color Specification) Las intensidades deben estar en el rango.[0,1] 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]

Borde suave del ROI durante la colocación interactiva, especificado como un escalar no negativo. El objeto utiliza la desviación estándar del núcleo de suavizado gaussiano para filtrar las coordenadas y coordenadas del ROI.Freehandxy Este parámetro define el tamaño del filtro como en esta ecuación: .2*ceil(2*Smoothing) + 1 Debe establecer el parámetro antes de dibujar el ROI de forma interactiva. Puede ver el efecto de suavizado solo después de completar el dibujo.

Color de la franja ROI, especificada como un valor.MATLABColorSpec (Color Specification) De forma predeterminada, el borde de un ROI es de color sólido. Si especifica , el borde del ROI se raya.StripeColor El rayado consta de una combinación del valor especificado por y este valor.'Color'

Ejemplo: 'green'

Ejemplo: 'g'

Ejemplo: [0 1 0]

Etiqueta que se va a asociar con el ROI, especificado como vector de caracteres o cadena. 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 un objeto.ContextMenu Utilice esta propiedad para mostrar un menú contextual personalizado al hacer clic con el botón derecho en el ROI. Puede crear un menú contextual personalizado mediante la función y, a continuación, configurar las propiedades del menú contextual.uicontextmenu

Datos que se asocian al ROI, especificados como cualquier dato.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 uno de los valores de esta tabla.

ValorDescripción
'on'Visualice el ROI (predeterminado).
'off'Ocultar el ROI sin eliminarlo. Todavía puede acceder a las propiedades de un ROI invisible.

Puntos de control utilizados para cambiar la forma del ROI, especificado como una matriz lógica -by-1 de la misma longitud que la propiedad.nPosition Los elementos con el valor identifican los puntos de la matriz que son waypoints.WaypointstruePosition De forma predeterminada, genera todos los puntos que definen el ROI y solo convierte puntos en ubicaciones de curvatura aumentada en waypoints.Freehand Puede convertir todos los puntos, o algún subconjunto de puntos, en waypoints mediante el uso de código similar a .roi.Waypoints(1:4:end) = true;

Los waypoints aparecen como formas circulares en el borde del ROI. Puede utilizar waypoints para cambiar la forma del ROI haciendo clic y arrastrando el waypoint con el ratón. Mover waypoints modifica la región dibujada a mano alzada entre el waypoint que agarró y los waypoints vecinos inmediatos.

Funciones del objeto

addlistenerCreate event listener bound to event source
beginDrawingFromPointComience a dibujar ROI desde el punto especificado
bringToFrontLleve el ROI al orden de apilamiento de los ejes
createMaskCrear imagen de máscara binaria a partir de ROI
drawComience a dibujar ROI de forma interactiva
inROIConsultar si los puntos se encuentran en ROI
reduceReducir la densidad de puntos en el ROI
waitBloquear la línea de comandos hasta que finalice la operación de ROIMATLAB

Ejemplos

contraer todo

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

I = imread('baby.jpg'); figure imshow(I)

Cree un ROI a mano alzada en la imagen, utilizando la propiedad para especificar los vértices del ROI.Position Para los ROI creados mediante programación, si desea que el ROI se dibuje en un eje específico, debe especificar esos ejes como argumento de entrada. De lo contrario, se crea una instancia de la clase pero no se muestra.images.roi.Freehand En este ejemplo, especifique los ejes actuales (gca) para dibujar el ROI en la imagen en esos ejes.

h = images.roi.Freehand(gca,'Position',[100 150;200 250;300 350;150 450]);

Lea una imagen en el espacio de trabajo.

I = imread('cameraman.tif');

Muestre la imagen.

imshow(I);

Dibuja un ROI a mano alzada en la imagen. Dado que en este ejemplo se especifica el tamaño y la ubicación del ROI, no es necesario llamar al método para habilitar el dibujo interactivo.draw

roi = images.roi.Freehand(gca,'Position',[10 15;100 50;100 150;15 145]);

Configure los agentes de escucha para los eventos de movimiento del ROI. Al moverlo, el ROI envía notificaciones de estos eventos y ejecuta la función de devolución de llamada que especifique.

addlistener(roi,'MovingROI',@allevents); addlistener(roi,'ROIMoved',@allevents);

La función de devolución de llamada muestra en la línea de comandos la posición anterior y la posición actual del ROI.alleventsFreehand

function allevents(src,evt) evname = evt.EventName;     switch(evname)         case{'MovingROI'}             disp(['ROI moving Previous Position: ' mat2str(evt.PreviousPosition)]);             disp(['ROI moving Current Position: ' mat2str(evt.CurrentPosition)]);         case{'ROIMoved'}             disp(['ROI moved Previous Position: ' mat2str(evt.PreviousPosition)]);             disp(['ROI moved Current Position: ' mat2str(evt.CurrentPosition)]);     end  end

Más acerca de

expandir todo

Sugerencias

  • El ROI admite la siguiente interactividad, incluidos los métodos abreviados de teclado.

    ComportamientoAtajo de teclado
    Cancele el dibujo del ROI.Pulse.Esc La función devuelve un objeto de ROI válido con un campo vacío.Position
    Termine de dibujar (cierre) el ROI.

    Haga doble clic, que agrega un punto en la posición del puntero y dibuja una línea que conecta este punto con el primer punto dibujado, cerrando el ROI.

    Haga clic con el botón derecho del botón derecho del botón derecho del derecho, que dibuja una línea que conecta el último punto con el primer punto dibujado.

    Coloque el puntero sobre el primer punto y haga clic.

    Pulse , que dibuja una línea que conecta el último punto con el primer punto dibujado.Entrar

    Cambie el tamaño (remodele) el ROI.

    Coloque el puntero sobre un waypoint y, a continuación, haga clic y arrastre. No hay asistencia (enganche a los bordes) disponible en este modo.

    Agregue un waypoint.

    Coloque el puntero en un borde del ROI, haga clic con el botón derecho y seleccione .Add Waypoint También puede colocar el puntero en un borde del ROI y hacer doble clic.

    Quite un waypoint.

    Coloque el puntero en un waypoint, haga clic con el botón derecho y seleccione .Remove Waypoint

    Mueva el ROI.Coloque el puntero sobre el ROI. El puntero cambia a la forma del fleur. Haga clic y arrastre para mover el ROI.
    Elimine un ROI.Coloque el puntero en el ROI (no en un vértice), haga clic con el botón derecho y seleccione en el menú contextual.Delete Freehand También puede eliminar el ROI mediante programación mediante el método object.delete
  • Para obtener información sobre el uso de un ROI en una aplicación creada con el Diseñador de aplicaciones, consulte .Uso de ROI en aplicaciones creadas con El Diseñador de aplicaciones

Introducido en R2018b