how to compare images in video processing?

this is my code
imaqhwinfo
info=imaqhwinfo('winvideo')
vid=videoinput('winvideo');
%Open Figure
hFigure=figure(1);
%set parameters for video
%Acquire only one frame each time
triggerconfig(vid,'Manual');
set(vid,'framespertrigger',1);
%Go on forever untill stopped
set(vid,'triggerrepeat',Inf);
%Get a grayscale image
set(vid,'ReturnedColorSpace','grayscale');
start(vid);
preview(vid);
for i=1:5
trigger(vid);
im=getdata(vid);
figure,imshow(im(:,:,:,i));
end
stop(vid),delete(vid),clear(vid);
the problem is that i'm not getting multiple frames in a single figure,more over some times the program run and some times gives the error
?? Error using ==> imaqdevice.start at 19
Multiple VIDEOINPUT objects cannot access the same device simultaneously.
why it happens and how can i solve it plz help
also m not getting the 4 frames ,it dispplay 3 figure windows out of which 2 is blank only 1 frame is showing

 Accepted Answer

You have
im=getdata(vid);
so you are writing over all of "im". But on the next line you have
imshow(im(:,:,:,i));
which attempts to extract data only from the "i" slice of "im".
You need to be consistent: either write the data to a slice of "im", or overwrite all of "im" and show all of "im".

3 Comments

so should i write like this? imshow(im); it shows all the images separately in 5 different figure windows or should i write imshow(im(:,:,:,im); plz correct me ,i want to show all of im in one figure, thanks in advance,waiting for your kind reply
What result do you want? The images are shown in separate figure windows because you have the call to figure before your imshow()
i want all images in one figure

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!