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.

Flujo de trabajo interactivo de herramientas modulares

El uso de las herramientas modulares interactivas suele implicar los siguientes pasos.

PasoDescripciónNotas
1Muestre la imagen que se va a procesar (denominada imagen) en una ventana de figura.ObjetivoUtilice la función para mostrar la imagen de destino, consulte .imshowMostrar la imagen de destino en una ventana de figura
2Cree la herramienta modular, asociándola con la imagen de destino.

Utilice las funciones de creación de herramientas modulares para crear las herramientas, consulte para obtener una lista de las herramientas disponibles.Crear aplicaciones de procesamiento de imágenes personalizadas con herramientas interactivas modulares

La mayoría de las herramientas se asocian a la imagen en los ejes actuales, de forma predeterminada, pero puede especificar un objeto de imagen específico, o una figura, ejes o objeto uipanel que contenga una imagen. Ver.Flujo de trabajo interactivo de herramientas modulares

Dependiendo de cómo haya diseñado la GUI, es posible que también desee especificar el objeto primario de la propia herramienta modular. Esto es opcional; de forma predeterminada, las herramientas utilizan el mismo elemento primario que la imagen de destino o se abren en una ventana de figura independiente. Consulte para obtener más información.Especifique el padre de una herramienta modular

Es posible que deba especificar la posición de los objetos gráficos en la GUI, incluidas las herramientas modulares. Consulte para obtener más información.Posicionar herramientas modulares en una GUI

3Configure la interactividad entre la herramienta y la imagen de destino. (Opcional)

Todas las herramientas modulares configuran automáticamente sus conexiones interactivas a la imagen de destino. Sin embargo, también puede especificar la conectividad personalizada mediante las API de herramientas modulares. Consulte para obtener más información.Personalizar la interactividad de herramientas modulares

Mostrar la imagen de destino en una ventana de figura

Como base para cualquier GUI de procesamiento de imágenes que cree, utilice para mostrar la imagen de destino (o imágenes) en una ventana de figura.imshowMATLAB® (También puede utilizar las funciones o.)MATLABimageimagesc Una vez que la imagen se muestra en la figura, puede asociar cualquiera de las herramientas modulares con la imagen mostrada en la figura.

Este ejemplo se utiliza para mostrar una imagen en una ventana de figura.imshow

himage = imshow('pout.tif');

Dado que algunas de las herramientas modulares se agregan a la ventana de figura que contiene la imagen, asegúrese de que la preferencia está establecida en , si está utilizando la función.Image Processing Toolbox™ImshowBorder'loose'imshow (Esta es la configuración predeterminada.) Al incluir un borde, se asegura de que las herramientas modulares no se muestren sobre la imagen de la figura.

Asocie herramientas modulares con la imagen de destino

Para asociar una herramienta modular con una imagen de destino que se muestra en una ventana de figura, debe crear la herramienta utilizando la función de creación de herramientas adecuada.MATLAB Especifique la imagen de destino como argumento para la función de creación de herramientas. La función crea la herramienta y configura automáticamente la conexión de interactividad entre la herramienta y la imagen de destino.

De forma predeterminada, la mayoría de las funciones modulares de creación de herramientas admiten una sintaxis sin argumentos que utiliza la imagen de la figura actual como imagen de destino. Si la figura actual contiene varias imágenes, las herramientas se asocian a la primera imagen de los elementos secundarios del objeto de figura (la última imagen creada). , y puede trabajar con varias imágenes en una figura.impixelinfoimpixelinfovalimdisplayrange

Por ejemplo, para utilizar la herramienta Información de píxeles con una imagen de destino, muestre la imagen en una ventana de figura, utilice y, a continuación, llame a la función para crear la herramienta.imshowimpixelinfo En este ejemplo, la imagen de la figura actual es la imagen de destino.

imshow('pout.tif'); impixelinfo

La figura siguiente muestra la imagen de destino en una figura con la herramienta Información de píxeles en la esquina inferior izquierda de la ventana. La herramienta Información de píxeles configura automáticamente una conexión a la imagen de destino: al mover el puntero sobre la imagen, la herramienta muestra las coordenadas y el valor del píxel debajo del puntero.xy

Asocie herramientas modulares con una imagen de destino particular

La imagen de destino de la herramienta modular se especifica al crearla pasando la imagen como argumento a la función de creación de herramientas modulares. También puede especificar una figura, ejes o un objeto uipanel que contenga la imagen de destino.

Continuando con el ejemplo de la sección anterior, es posible que desee agregar la herramienta Rango de visualización a la ventana de figura que ya contiene la herramienta Información de píxeles. Para ello, llame a la función especificando la imagen de destino.imdisplayrange También podría haber especificado la figura, los ejes o el objeto uipanel que contiene la imagen de destino.

imageobj = imshow('pout.tif'); pixelinfopanelobj = impixelinfo(imageobj); drangepanelobj = imdisplayrange(imageobj); 

Tenga en cuenta que las funciones de creación de herramientas devuelven los objetos uipanel creados por las funciones y.impixelinfoimdisplayrange Puede utilizar estos objetos si desea cambiar el posicionamiento de las herramientas. Consulte para obtener más información.Posicionar herramientas modulares en una GUI

La figura siguiente muestra la imagen de destino en una figura con la herramienta Información de píxeles en la esquina inferior izquierda y la herramienta Rango de visualización en la esquina inferior derecha de la ventana. La herramienta Rango de visualización configura automáticamente una conexión con la imagen de destino: al mover el puntero sobre la imagen (o imágenes) de la figura, la herramienta Rango de visualización muestra el rango de visualización de la imagen.

Obtener handle a la imagen de destino

Este ejemplo muestra varias maneras de obtener el identificador de la imagen mostrada en una ventana de figura, denominada .ObjetivoImagen Esto puede ser útil al crear aplicaciones con las herramientas interactivas modulares.

Obtenga el identificador cuando muestre inicialmente la imagen en una ventana de figura mediante la sintaxis que devuelve un identificador.imshow

hfig = figure; himage = imshow('moon.tif')

himage =    Image with properties:             CData: [537x358 uint8]     CDataMapping: 'scaled'    Show all properties  

Obtenga el identificador después de haber mostrado la imagen en una ventana de figura mediante la función.imhandles Debe especificar un identificador para la ventana de figura como parámetro.

himage2 = imhandles(hfig)
himage2 =    Image with properties:             CData: [537x358 uint8]     CDataMapping: 'scaled'    Show all properties  

Especifique el padre de una herramienta modular

Al crear una herramienta modular, además de especificar la imagen de destino, puede especificar opcionalmente el objeto que desea que sea el elemento primario de la herramienta. Al especificar el elemento primario, se determina dónde aparece la herramienta en la pantalla. Con esta sintaxis de las funciones modulares de creación de herramientas, puede agregar la herramienta a la ventana de figura que contiene la imagen de destino, abrir la herramienta en una ventana de figura independiente o crear alguna otra combinación.

Especificar el elemento primario es opcional; todas las herramientas modulares tienen un comportamiento predeterminado. Algunas de las herramientas más pequeñas, como la herramienta Información de píxeles, utilizan el elemento primario de la imagen de destino como su elemento primario, insertándose en la misma ventana de figura que la imagen de destino. Otras herramientas modulares, como la herramienta Región de píxeles o la herramienta Visión general, se abren en figuras propias.

Herramientas con funciones de creación separadas

Dos de las herramientas, la herramienta Región de píxeles y la herramienta Visión general, tienen una función de creación independiente para proporcionar esta capacidad. Sus funciones de creación principales y, abrir las herramientas en una ventana de figura independiente.imoverviewimpixelregion Para especificar un elemento primario diferente, debe utilizar las funciones y.imoverviewpanelimpixelregionpanel

Nota

La herramienta Visión general y la herramienta Región de píxeles proporcionan capacidades adicionales cuando se crean en sus propias ventanas de figuras. Por ejemplo, ambas herramientas incluyen botones de zoom que no forman parte de sus versiones de uipanel.

Herramienta Incrustar región de píxeles en la figura existente

En este ejemplo se muestra el comportamiento predeterminado al crear la herramienta Región de píxeles mediante la función.impixelregion La herramienta se abre en una ventana de figura independiente, como se muestra en la figura siguiente.

himage = imshow('pout.tif') hpixelinfopanel = impixelinfo(himage); hdrangepanel = imdisplayrange(himage); hpixreg = impixelregion(himage);

Para incrustar la herramienta Región de píxeles en la misma ventana que la imagen de destino, debe especificar la figura principal de la imagen de destino como elemento principal de la herramienta Región de píxeles al crearla.

En el ejemplo siguiente se crea una figura y un objeto de ejes y, a continuación, se coloca los objetos en la figura para garantizar su visibilidad. Consulte para obtener más información.Posicionar herramientas modulares en una GUI A continuación, el ejemplo crea las herramientas modulares, especificando la figura que contiene la imagen de destino como elemento primario de la herramienta Región de píxeles. Tenga en cuenta que el ejemplo utiliza la función para crear la herramienta.impixelregionpanel

fig = figure; ax = axes('units','normalized','position',[0 .5 1 .5]); img = imshow('pout.tif') pixelinfopanelobj = impixelinfo(img); drangepanelobj = imdisplayrange(img); pixregionobj = impixelregionpanel(fig,img); set(pixregionobj, 'Units','normalized','Position',[0 .08 1 .4]);

La figura siguiente muestra la región de píxeles incrustada en la misma figura que la imagen de destino.

Posicionar herramientas modulares en una GUI

Al crear las herramientas modulares, tienen un comportamiento de posicionamiento predeterminado. Por ejemplo, la función crea la herramienta como un objeto uipanel que es el ancho completo de la ventana de figura, situado en la esquina inferior izquierda de la ventana de figura de imagen de destino.impixelinfo

Dado que las herramientas modulares se construyen a partir de objetos gráficos, como objetos uipanel, puede utilizar las propiedades de los objetos para cambiar su posicionamiento predeterminado u otras características.

Por ejemplo, en , cuando la herramienta Región de píxeles se incrustó en la misma ventana de figura que la imagen de destino, el ejemplo tenía que cambiar la posición del objeto de imagen y el objeto uipanel de la herramienta Región de píxeles para que ambos fueran visibles en la ventana de figura.Especifique el padre de una herramienta modular

Especifique la posición con un vector de posición

Para especificar la posición de una herramienta modular u otro objeto gráfico, establezca el valor de la propiedad del objeto.Position Como valor de esta propiedad, se especifica un vector de posición de cuatro elementos , donde y se especifica la distancia desde la esquina inferior izquierda del objeto contenedor primario, como una figura.[left bottom width height]leftbottom El y especifique las dimensiones del objeto.widthheight

Cuando se utiliza un vector de posición, puede especificar las unidades de los valores en el vector estableciendo el valor de la propiedad del objeto.Units Para permitir un mejor comportamiento de cambio de tamaño, utilice unidades normalizadas porque especifican la posición relativa, no la ubicación exacta en píxeles. Consulte las páginas de referencia de estos objetos gráficos para obtener más detalles.

Por ejemplo, cuando se crea por primera vez una herramienta de región de píxeles incrustada en una figura, parece que se hace cargo de toda la figura porque, de forma predeterminada, el vector de posición se establece en , en unidades normalizadas.[0 0 1 1] Este vector de posición indica a la herramienta que se alinee con la esquina inferior izquierda de su elemento primario y llene todo el objeto. Para acomodar la imagen y la herramienta Información de píxeles y las herramientas Rango de visualización, cambie la posición de la herramienta Región de píxeles en la mitad inferior de la ventana de figura, dejando espacio en la parte inferior para las herramientas Información de píxeles y Rango de visualización. Aquí está el vector de posición para la herramienta Región de píxeles.

set(hpixreg, 'Units','normalized','Position',[0 .08 1 .4])

Para dar cabida a la herramienta Región de píxeles, cambie la posición de la imagen de destino para que quepa en la mitad superior de la ventana de figura, utilizando el siguiente vector de posición. Para cambiar la posición de la imagen, debe especificar la propiedad del objeto de ejes que la contiene; los objetos de imagen no tienen una propiedad.PositionPosition

set(hax,'Units','normalized','Position',[0 0.5 1 0.5])

Adición de ayudas de navegación a una GUI

Nota

Las herramientas de navegación modular de la caja de herramientas son incompatibles con las herramientas de navegación de ventanas de figura estándar.MATLAB Cuando utilice estas herramientas en una GUI, suprima la barra de herramientas y la barra de menús en las ventanas de figuras para evitar conflictos entre las herramientas.

La caja de herramientas incluye varias herramientas modulares que puede utilizar para agregar ayudas de navegación a una aplicación GUI:

  • Panel de desplazamiento

  • Herramienta de visión general

  • Caja de ampliación

El Panel de desplazamiento es la herramienta de navegación principal; es un requisito previo para las otras herramientas de navegación. Cuando se muestra una imagen en un panel de desplazamiento, la herramienta muestra solo una parte de la imagen, si es demasiado grande para caber en la ventana de figura. Cuando solo una parte de la imagen está visible, el Panel de desplazamiento agrega barras de desplazamiento horizontales y verticales, para permitir la visualización de las partes de la imagen que no están visibles actualmente.

Una vez que cree un panel de desplazamiento, puede agregar opcionalmente las otras herramientas de navegación modular: la herramienta Visión general y la herramienta Ampliación. La herramienta Visión general muestra una vista de toda la imagen, escalada para ajustarse, con un rectángulo superpuesto sobre ella que indica la parte de la imagen que está visible actualmente en el panel de desplazamiento. El cuadro de ampliación muestra la ampliación actual de la imagen y se puede utilizar para cambiar la ampliación.

En las secciones siguientes se proporcionan más detalles.

Comprender los paneles de desplazamiento

Cuando se muestra una imagen en un panel de desplazamiento, cambia la jerarquía de objetos de la imagen mostrada. Este diagrama ilustra la jerarquía de objetos típica de una imagen que se muestra en un objeto de ejes en un objeto de figura.

hfig = figure; himage = imshow('concordaerial.png');

La figura siguiente muestra esta jerarquía de objetos.

Jerarquía de objetos de imagen mostrada en una figura

Cuando se llama a la función para colocar la imagen de destino en una ventana desplazable, esta jerarquía de objetos cambia.imscrollpanel Por ejemplo, este código agrega un panel de desplazamiento a una imagen que se muestra en una ventana de figura, especificando el elemento primario del panel de desplazamiento y la imagen de destino como argumentos. El ejemplo suprime la barra de herramientas de la ventana de figuras y la barra de menús porque no son compatibles con las herramientas de navegación del panel de desplazamiento.

hfig = figure('Toolbar','none',...               'Menubar', 'none'); himage = imshow('concordaerial.png'); hpanel = imscrollpanel(hfig,himage);

La figura siguiente muestra la jerarquía de objetos después de la llamada a .imscrollpanel Observe cómo inserta un nuevo objeto (sombreado en gris) en la jerarquía entre el objeto de figura y el objeto de ejes que contiene la imagen.imscrollpanel (Para cambiar los datos de imagen que se muestran en la barra de desplazamiento, utilice la función en la API.)replaceImageimscrollpanel

Jerarquía de objetos de imagen mostrada en el panel de desplazamiento

La figura siguiente muestra cómo aparecen estos objetos gráficos en la imagen desplazable a medida que se muestra en la pantalla.

Componentes de un panel de desplazamiento