error using webcam

i want to track redobjects,i have code for it and it detects redobjects,but wen i use cam to take picture i get an error
error is
Error using ==> end
Incorrect cell or structure reference involving "end".
Most likely cause is a reference to multiple elements of a cell or
structure followed by additional subscript or structure references.
Error in ==> getCameraInfo at 4
camera_id = camera_info.DeviceInfo.DeviceID(end);
the code for getCameraInfo is
function [camera_name, camera_id, resolution] = getCameraInfo(a)
camera_name = char(a.InstalledAdaptors(end));
camera_info = imaqhwinfo(camera_name);
camera_id = camera_info.DeviceInfo.DeviceID(end);
resolution = char(camera_info.DeviceInfo.SupportedFormats(end));
can anyone suggest please

 Respuesta aceptada

Walter Roberson
Walter Roberson el 18 de Oct. de 2011

0 votos

camera_info or camera_info.DeviceInfo is a structure array with multiple elements, so either camera_info or camera_info.DeviceInfo represents multiple array values simultaneously. You then try to index in to a field in one of those arrays, but MATLAB does not allow that operation.
For example, if you had
A(1).id = 1:5;
A(2).id = 6:10;
then A.id(end) would try to refer to both A(1).id(end) and A(2).id(end) simultaneously... which isn't allowed.
You should use
size(camera_info)
arrayfun(@size,[camera_info.DeviceInfo],'Uniform',0)
to explore to see which is the structure array with multiple elements.

1 comentario

FIR
FIR el 18 de Oct. de 2011
i did as u sai dbut i get error
the error is
Error in ==> getCameraInfo1 at 2
camera_name = char(a.InstalledAdaptors(end));
??? Output argument "camera_id" (and maybe others) not assigned during call to
"C:\Documents and Settings\User\Desktop\camera\getCameraInfo1.m>getCameraInfo1".

Iniciar sesión para comentar.

Más respuestas (1)

Daniel Shub
Daniel Shub el 18 de Oct. de 2011

0 votos

I am not sure, but following on from Walter ...
Are you sure you want
camera_info.DeviceInfo.DeviceID(end)
and not
camera_info(end).DeviceInfo.DeviceID
or
camera_info.DeviceInfo(end).DeviceID
or similarly for your comment to Walter. Instead of
a.InstalledAdaptors(end)
try
a(end).InstalledAdaptors
I am just guessing here. The output of whos or even better a description of the class and size of each object (and the nested objects) would make it easier to diagnose.

Etiquetas

Preguntada:

FIR
el 18 de Oct. de 2011

Community Treasure Hunt

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

Start Hunting!

Translated by