Contenido principal

Utilizar una función de espera después de dibujar una ROI

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

Muestre una imagen.

imshow('pears.png')

Dibuje una ROI rectangular 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 customWait (definida al final del ejemplo).

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 cuando hace clic en una ROI. Cuando ha terminado de interactuar con la ROI, la función devuelve la posición de la 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 callback al hacer clic reanuda la ejecución del programa cuando hace doble clic en la ROI. Tenga en cuenta que los datos del evento se pasan a la función de callback como un objeto images.roi.ROIClickedEventData, que permite definir funciones de callback que responden a diferentes tipos de acciones. Por ejemplo, puede definir una función de callback para reanudar la ejecución del programa cuando hace clic en la ROI mientras pulsa la tecla Mayús o cuando hace clic en una parte específica de la ROI, como la etiqueta.

function clickCallback(~,evt)

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

end

Consulte también

| | | |

Temas