views:

54

answers:

1

Hello

In our project, we would like to access the webcam image programmatically. The main problem we have is that the webcam automatically adjusts the sensitivity depending on the brightness of the captured image.

Is there any (platform-independent) way to change this kind of parameters for the webcam (preferably any model)?

We're currently using Ubuntu 10.04, Microsoft Windows XP & 7. Programming language is C/C++.

Any idea is appreciated.

Thanks and regards Tobias

+1  A: 

There most likely won't be any platform independent way to do what you need. If there is, it's probably by using some high level language, which likely won't suit.

I don't know about the linux platform, but I'm a C++/windows/COM/DirectShow developer who works on internet based video applications.

On the Windows platform, capture devices are communicated with via COM and DirectShow.

For a general overview of video capture on windows, see the Video Capture section of MSDN.

Have a look at Selecting a Capture Device for information on how to enumerate the capture devices on your system. You'll need to enumerate the devices in the CLSID_VideoInputDeviceCategory, in order to discover (programmatically) the webcam as a video input device - there may be many devices in this category.

Video capture devices have a "FriendlyName" to help identify your webcam that you can store and retrieve the device for later use.

Once you've got the device, your query said you'd wanted to configure the device. Check out the Configuring a Video Capture Device for this.

DirectShow is one of Microsoft's most comprehensive (and difficult) APIs to learn. The MSDN developer forum on DirectShow is very active and beginner friendly and I highly recommend you check it out.

Finally, capture graphs aren't the easiest thing to build in DirectShow, I'd start off with a simple playback graph - e.g. playback a media file from disk and progress from there to capture graphs.

The VLC project is open source and cross-platform and it uses DirectShow for playback on the windows platform.

Good luck!

freefallr
accept. hello freefallr. thanks for your reply. think we should be finding a way to do it. but the tip with VLC could solve our problem. thank you.
Atmocreations