problem in connecting with webcam and re
Show older comments
I use this code to take a picture but the picture is very eliminate.but also when I use this command "preview(cam)" on time image is good. what is the problem with the picture?the code is below
cam=videoinput('winvideo' , 2);
set(cam.source , 'Brightness' , 240);
pic=getsnapshot(cam);
4 Comments
Walter Roberson
on 2 Nov 2013
Sorry I did not catch what you meant by "very eliminate" ?
Are you displaying the image after you snapshot it?
Could you post some examples?
Behrad kiani
on 2 Nov 2013
Walter Roberson
on 2 Nov 2013
I would not assume that the default video format is RGB. You should find out which formats your camera can return, and select one specifically. Then if necessary, convert colorspaces into something you can display. If the video format is grayscale, make sure you have a grayscale colormap active when you display it.
Behrad kiani
on 3 Nov 2013
Answers (1)
Image Analyst
on 3 Nov 2013
Do you have a weird colormap applied? Is the camera running in monochrome mode? Your videoinput() code doesn't look like mine. Mine looks like:
% Initialize Logitech webcam
vidobj = videoinput('winvideo', 1, 'RGB24_640x480');
if ~isempty(vidobj)
src = getselectedsource(vidobj);
vidobj.FramesPerTrigger = 1;
axes(handles.axesImage);
hImage = findobj(handles.axesImage, 'Type', 'image');
preview(vidobj, hImage);
% src.ZoomMode = 'manual';
% Turn on the live video preview. Display the bounding box over it if there is one selected.
TurnOnLiveVideo(handles); % My own function
end
Are you sure you're supposed to be using camera #2? Why did you not specify an operation mode, such as 'RGB24_640x480', for the video?
9 Comments
Behrad kiani
on 3 Nov 2013
Walter Roberson
on 3 Nov 2013
Tell us what output you get from
T = imaqhwinfo('winvideo' , 2);
T.SupportedFormats
Your data is currently being collected in YUY2 format, which is one of the reasons that your image comes out wrong.
Behrad kiani
on 3 Nov 2013
Walter Roberson
on 3 Nov 2013
Odd, your camera can do 720 x 1280, but the largest format returned is 640 x 480.
Anyhow, you should activate that format. And then you need to decide what you want to do with the data returned.
I suggest that you read the comments for http://www.mathworks.com/matlabcentral/fileexchange/26249-yuy2-to-rgb-converter
Behrad kiani
on 3 Nov 2013
Walter Roberson
on 3 Nov 2013
I do not know.
Image Analyst
on 3 Nov 2013
I don't know why there are non-RGB modes in the first place. I only use cameras in RGB mode so I don't really know why, when, or how you'd use non-RGB modes. Since computers only display RGB I don't know if the R is the Y channel and the G is the U channel and the B is the V channel or it's some other arrangement, or if it's somehow converted internally. These would be good questions to ask the Mathworks. Or else just get a camera than can handle RGB.
Walter Roberson
on 3 Nov 2013
The comments in the link I posted show how to get the YUY2 space converted to RGB.
Image Analyst
on 3 Nov 2013
Thanks. I forgot. Another good answer from David on the Image Acquisition team: http://www.mathworks.com/matlabcentral/answers/75519#answer_85238
Categories
Find more on Image Acquisition Support Packages for Hardware Adaptors (Generic Video Interface) in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!