2009-06-29 16 views

Répondre

2

Comment vos images sont-elles stockées dans Matlab? Comme un film matlab ou une matrice 3 ou 4 dimensions selon si les images sont en couleur ou en niveaux de gris. En outre, si vous avez la boîte à outils de traitement d'image, implay et immovie. Une autre option suppose que vos images sont dans une matrice (couleur rgb) ou mxnxk (échelle de gris). Alors ce qui suit devrait fonctionner. En supposant que les suivantes

  • Img - matrice de stockage des données d'image soit avec des dimensions mxnx3xk ou mxnxk

  • handles.imageAxes - poignée pour l'axe que vous souhaitez afficher l'image (définir la variable des axe à l'imageAxes dans le GUIDE)

Maintenant vous pouvez boucle à travers Img

for i=1:k 
    % display the i^th image use `Img(:,:,i)` for a gray scale stack 
    image(Img(:,:,:,i),'parent',handles.imageAxes); 
    pause(1) % pause one second 
end 

c'est tout.

6

Je ne suis pas tout à fait sûr de ce que vous voulez faire (plus précisément ce type d'images que vous essayez d'afficher), mais voici quelques exemples de code qui peut faire ce que vous voulez:

image1 = imread('cameraman.tif'); % Load a test image 
image2 = imread('circles.png'); % Load another test image 

hAxes = gca; % Get a handle to the current axes 

for iLoop = 1:5, % Loop five times 
    imshow(image1,'Parent',hAxes); 
    pause(1); 
    imshow(image2,'Parent',hAxes); 
    pause(1); 
end 

je la fonction générale IMSHOW, mais cela modifie parfois d'autres propriétés de la figure/des axes et cela peut ne pas être à votre goût (puisque vous mentionnez d'ajouter ceci à une interface graphique existante). Vous souhaiterez peut-être utiliser la fonction IMAGE à la place. En outre, au lieu de la boucle for, vous pouvez utiliser une boucle while qui arrête de changer d'image lorsqu'une condition est remplie (par exemple, un appui sur un bouton).

Questions connexes