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.

imscrollpanel

Panel de desplazamiento para la navegación interactiva de imágenes

Descripción

Utilice la función para añadir un panel de desplazamiento a una imagen.imscrollpanel Si el tamaño o la ampliación hacen que una imagen sea demasiado grande para mostrarla en una figura de la pantalla, el panel de desplazamiento muestra una parte de la imagen con una ampliación del 100% (un píxel de pantalla representa un píxel de imagen). El panel de desplazamiento añade barras de desplazamiento horizontales y verticales para habilitar la navegación alrededor de la imagen.

ejemplo

hpanel = imscrollpanel(hparent,himage) crea un panel de desplazamiento que contiene la imagen de destino (la imagen que se va a navegar). es un identificador de la imagen de destino. es un identificador de la figura o uipanel que contendrá el panel de desplazamiento.himagehparent La función devuelve , un identificador al panel de desplazamiento.hpanel

Ejemplos

contraer todo

Mostrar una imagen en una figura. El ejemplo suprime la barra de herramientas estándar y la barra de menús en la ventana de figura porque no funcionan con el panel de desplazamiento.

hFig = figure('Toolbar','none',...               'Menubar','none'); hIm = imshow('saturn.png'); 

Cree un panel de desplazamiento para contener la imagen.

hSP = imscrollpanel(hFig,hIm); set(hSP,'Units','normalized','Position',[0 .1 1 .9])

Agregue un cuadro de ampliación y una herramienta Visión general a la figura.

hMagBox = immagbox(hFig,hIm); pos = get(hMagBox,'Position'); set(hMagBox,'Position',[0 0 pos(3) pos(4)]) imoverview(hIm)

Obtenga la API del panel de desplazamiento para que pueda controlar la vista mediante programación.

api = iptgetapi(hSP);

Obtenga la ampliación y la posición actuales.

mag = api.getMagnification() r = api.getVisibleImageRect()
mag =       1  r =    125.0072  201.5646  716.0000  709.0000

Utilice la función API del objeto del panel de desplazamiento para ver la esquina superior izquierda de la imagen.setVisibleLocation

api.setVisibleLocation(0.5,0.5)

Cambie la ampliación de la imagen para que la imagen quepa completamente en el panel de desplazamiento. En la figura siguiente, tenga en cuenta que las barras de desplazamiento ya no están visibles.

api.setMagnification(api.findFitMag())

Acérquese al 1600% en el punto oscuro.

api.setMagnificationAndCenter(16,306,800)

Argumentos de entrada

contraer todo

Controlar a una figura o uipanel objeto que contiene el panel de desplazamiento, especificado como un identificador.

Controlar la imagen de destino, especificada como un identificador.

Argumentos de salida

contraer todo

Control del panel de desplazamiento, devuelto como identificador. Un panel de desplazamiento es un tipo de objeto uipanel.

Más acerca de

contraer todo

Estructura de API del panel de desplazamiento

Un panel de desplazamiento contiene una estructura de identificadores de función, denominada API. Puede utilizar las funciones de esta API para manipular el panel de desplazamiento. Para recuperar esta estructura, utilice la función, como en el ejemplo siguiente.iptgetapi

api = iptgetapi(hpanel)

En esta tabla se enumeran las funciones de API del panel de desplazamiento, en el orden en que aparecen en la estructura.

Función

Descripción

setMagnification

Establezca la ampliación de la imagen de destino en unidades de píxeles de pantalla por píxel de imagen.

mag = api.setMagnification(new_mag)

es un factor de aumento escalar.new_mag

getMagnification

Devuelve el factor de ampliación actual de la imagen de destino en unidades de píxeles de pantalla por píxel de imagen.

mag = api.getMagnification()

Multiplique por 100 para convertir a porcentaje.mag Por ejemplo, si es , entonces la ampliación es 200%.mag2

setMagnificationAndCenter

Cambie la ampliación y haga que el punto con la coordenada ( , ) ( , ) en la imagen de destino aparezca en el centro del panel de desplazamiento.xycxcy Esta operación equivale a un zoom y un recentro simultáneos.

api.setMagnificationAndCenter(mag,cx,cy)

findFitMag

Devuelve el factor de ampliación que haría que la imagen de destino simplemente encajara en el panel de desplazamiento.

mag = api.findFitMag()

setVisibleLocation

Mueva la imagen de destino para que la ubicación especificada esté visible y actualice las barras de desplazamiento.

api.setVisibleLocation(xmin, ymin)  api.setVisibleLocation([xmin ymin])

getVisibleLocation

Devuelve la ubicación de la parte visible actualmente de la imagen de destino.

loc = api.getVisibleLocation()

es un vector .loc[xmin ymin]

getVisibleImageRect

Devuelve la parte visible actual de la imagen.

r = api.getVisibleImageRect()

es un rectángulo .r[xmin ymin width height]

addNewMagnificationCallback

Agregue el identificador de función a la lista de funciones de devolución de llamada de nueva ampliación.fcn

id = api.addNewMagnificationCallback(fcn)

Cada vez que cambia la ampliación del panel de desplazamiento, se llama a cada función de la lista con la sintaxis:

fcn(mag)

es un factor de aumento escalar.mag

El valor devuelto, , sólo se utiliza con .idremoveNewMagnificationCallback

removeNewMagnificationCallback

Quite la función correspondiente de la lista de devolución de llamada de nueva ampliación.

api.removeNewMagnificationCallback(id)

es el identificador devuelto por .idaddNewMagnificationCallback

addNewLocationCallback

Agregue el identificador de función a la lista de funciones de devolución de llamada de nueva ubicación.fcn

id = api.addNewLocationCallback(fcn)

Cada vez que cambia la ubicación del panel de desplazamiento, se llama a cada función de la lista con la sintaxis:

fcn(loc)

Es.loc[xmin ymin]

El valor devuelto, , sólo se utiliza con .idremoveNewLocationCallback

removeNewLocationCallback

Quite la función correspondiente de la lista de devolución de llamada de nueva ubicación.

api.removeNewLocationCallback(id)

es el identificador devuelto por .idaddNewLocationCallback

replaceImage

reemplaza la imagen mostrada en el panel de desplazamiento.api.replaceImage(...,PARAM1,VAL1,PARAM2,VAL2,...)

api.replaceImage(I) api.replaceImage(BW) api.replaceImage(RGB) api.replaceImage(I,MAP) api.replaceImage(filename)

De forma predeterminada, los nuevos datos de imagen se muestran centrados, con una ampliación del 100%. El identificador de imagen no cambia.

Los parámetros que puede especificar incluyen muchos de los parámetros admitidos por , incluyendo , , y .imshow'Colormap''DisplayRange''InitialMagnification' Además, puede utilizar el parámetro para conservar la ampliación y el centrado actuales de la imagen durante el reemplazo.'PreserveView' Especifique el escalar lógico para conservar el centrado y la ampliación actuales.True Los nombres de los parámetros se pueden abreviar y el caso no importa.

Sugerencias

  • cambia la jerarquía de objetos de la imagen de destino.imscrollpanel En lugar de la jerarquía de objetos de figura- ejes e imagen conocida, inserta varios objetos uipanel y uicontrol entre la figura y el objeto de ejes.imscrollpanel

  • La navegación de la barra de desplazamiento tal como se proporciona es incompatible con los botones de navegación de figura predeterminados (pan, zoom, zoom).imscrollpanelMATLAB® Los elementos de menú y los botones de barra de herramientas correspondientes deben eliminarse en una GUI personalizada que incluya un uipanel desplazable creado por .imscrollpanel

  • Cuando se ejecuta , parece tomar el control de toda la figura porque, de forma predeterminada, un objeto uipanel se ha establecido en y establecido en .imscrollpanel'Units''normalized''Position'[0 0 1 1] Si desea ver otros elementos secundarios de mientras utiliza el nuevo panel de desplazamiento, debe establecer manualmente la propiedad de .hparent'Position'hpanel

Introducido antes de R2006a