Main Content

Utilice la función Wait después de dibujar ROI

En este ejemplo se muestra cómo definir una función de espera personalizada que bloquea la línea de comandos MATLAB® hasta que termine de colocar un rectángulo.

Mostrar una imagen.

imshow('pears.png')

Dibuje un ROI de rectángulo en la esquina superior izquierda de la imagen.

h = drawrectangle('Position',[1 1 100 100]);

Utilice una función de espera personalizada para bloquear la línea de comandos de MATLAB mientras interactúa con el rectángulo. En este ejemplo se especifica una función llamada (definida al final del ejemplo).customWait

Mientras la línea de comandos está bloqueada, cambie el tamaño y la posición del rectángulo para que abarque una pera. Haga doble clic en el rectángulo para reanudar la ejecución de la función.customWait La función devuelve la posición final del rectángulo.

pos = customWait(h)

pos = 1×4

  262.0000   36.0000  144.0000  145.0000

Esta es la función de espera personalizada que bloquea la ejecución del programa al hacer clic en un ROI. Cuando haya terminado de interactuar con el ROI, la función devuelve la posición del ROI.

function pos = customWait(hROI)  % Listen for mouse clicks on the ROI l = addlistener(hROI,'ROIClicked',@clickCallback);  % Block program execution uiwait;  % Remove listener delete(l);  % Return the current position pos = hROI.Position;  end

Esta función de devolución de llamada de clic reanuda la ejecución del programa al hacer doble clic en el ROI. Tenga en cuenta que los datos de evento se pasan a la función de devolución de llamada como un objeto, lo que le permite definir funciones de devolución de llamada que responden a diferentes tipos de acciones.images.roi.ROIClickedEventData Por ejemplo, podría definir una función de devolución de llamada para reanudar la ejecución del programa al hacer clic en el ROI mientras pulsa la tecla Mayús o al hacer clic en una parte específica del ROI, como la etiqueta.

function clickCallback(~,evt)  if strcmp(evt.SelectionType,'double')     uiresume; end  end

Consulte también

| | | |

Temas relacionados