MATLAB: Stop program after image closes

image processingMATLABvideo processing

w = webcam;
while true
img = w.snapshot;
imshow(img) % display the image
pause(0.1); % pause for one second
end
This program allows me to show the frames of the video per 0.1 second but it keeps on running after closing the image and the image keeps popping out. Is there a solution to let the program knows the image is closed hence terminate the program?

Best Answer

One possible way is to create the figure before starting your loop, keep its handle and check that it's not been deleted (which will happen when you close the figure):
w = webcam;
hfig = figure;
while isvalid(hfig) %while figure has not been closed
img = w.snapshot;
imshow(img);
pause(0.1);
end