Hold on not working in for loop for imshow
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Allan Millsteed
le 23 Juil 2021
Commenté : Allan Millsteed
le 23 Juil 2021
For visual verification of my algorithm as I develop it, I have been using imshow to display representations of my data and at one point I overlay 2 images from arrays in a for loop, with reduced transperancy so I can see both. I have been using the following and it has been working fine (virtually an animation is displayed as the loop progresses):
for k = 1:length(maskedArray)
imshow(maskedArray{k})
hold on;
imshow(allPoints{k})
alpha(0.6);
hold off;
pause(0.05)
end
However, I have changed my workflow so that I now import a single image and process it through each iteration of a loop, so I can handle huge numbers of images. At the end of the loop, if I use imshow() for a single image, I still get the expected 'animation' as the loop runs through each iteration.
The problem is, as soon as I use 'hold on' as i have above, or even with the single image, I don't get any images at all displayed until the final loop iteration.
So code such as:
for k=1:100
...processing, etc.
imshow(myImage)
end
generates a 'slideshow' animation just fine, but code such as:
for k=1:100
...processing, etc.
imshow(myImage)
hold on;
hold off;
end
will only show the final image in the sequence.
I don't understand why the 'hold' command supresses the imshow until the final loop iteration but work fine when I use an array of images? Is there a way around this or do I have to revert to smaller data sets and generating image arrays?
0 commentaires
Réponse acceptée
Simon Chan
le 23 Juil 2021
It just executing too fast and not able to observe from the screen.
You may add a pasue and try to see whether the output is what you want.
for k=1:100
...processing, etc.
imshow(myImage)
hold on;
hold off;
pause(1)
end
3 commentaires
Simon Chan
le 23 Juil 2021
Actually you may remove the hold on and hold off command shown below.
My previous code just showing hold on and hold off are functioning correctly but run too fast.
for k=1:100
...processing, etc.
imshow(myImage)
pause(1)
end
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Display Image dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!