OpenCV 2 - How to switch webcam flash? - winapi

I am just curious if it is possible to control a generic laptop webcam's flash. Is that possible using OpenCV? (I don't think so). Maybe with WinAPI? Any ideas?

Related

generic graphics driver for mirroring

Is it possible to write an Windows generic graphics driver that will 1) use the currently installed driver for standard monitor out AND 2) perform some custom stuff with the video buffers (like mirror/stream to other video hardware). Something like what "connect to projector - mirror" does in Windows 7.
If this is not possible, can I write some driver that will hook somehow to the current graphics driver and take video buffers for further mirroring/streaming?
As far as I know, the existing drivers might be using COPP or some other protections when using Blu-ray sources or such, so how to avoid this?
Thanks!
Does Mirror Driver (msdn link) suit your requirement?

openCV mac OSX suggested webcam

Does anyone have a recommendation for a web cam to be used on a mac with opencv?
Thank you!
The internal webcam that comes with their laptop works quite well (rather high quality). You can also get Logitech Orbit (I personally have rather good experience with those).
While OpenCV will work with essentially any USB webcam, there is a great deal of variety in image quality. I have personally had excellent luck with the PS3 Eye Cam in Ubuntu after removing the casing. Even though it is only $25-50, it can run up to 125 Hz and is less susceptible to motion blur. I am not sure how the open source Mac OS X drivers compare to the Linux drivers, but it is worth consideration.

Streaming from webcam on OS X - what technology to use?

I'm building a videoconferencing application in OS X.
What technology would be best to use for real-time streaming video/audio captured from webcam/microphone in OS X?
So far I was unsuccessful with these methods:
using QTKit I captured the media, but there isn't a way to stream it (without using the QTSS which is too bloaty and hard to control programmatically).
using QT Java I got everything (almost) working, but the library is deprecated, it crashes every once in a while, signals memory leaking and there isn't a way to save preferences from a settings dialog
I installed gstreamer using Macports, but there isn't a working osxvideosrc (or audio for that matter)
My next target is VLC because it can access the webcam in OS X, but I'm not sure will it give me what I need - can I control it fully over an API and can I display the stream inside a Cocoa application (using QTKit's player)?
Could of points:
Consider Flex/Flash and possible Adobe Air. Many people have written videoconferencing applications this way.
QT for Java is dated and not going anywhere.
VLC is a solid option. Stable, well known, powerful, and very mature.

I need to develop a project involving hardware which should also work the same on Windows as well as Macs. Whats the way forward?

Whats the best approach (read painless) that I could take?
Primarily, the application needs to record the webcam video + mic recording on the disk and compress the video using ffmpeg (or something similar).
So there is hardware involved + running a separate process for encoding.
I was seriously considering Adobe AIR - but I read on the Adobe site that it does not have permission to run other applications which can be problematic if I want to encode the video using ffmpeg.
Did you consider developing it in Java? In that case you should take a look at the Eclipse Rich Client platform. I have developed a couple of programs by using Eclipse RCP and I would never develop an app in Java without it. It uses SWT and jFace and provides options for exporting the app to run on OSX, Linux and Windows.
You should give it a try.
If you can develop it under Mono, much of it will work on both platforms.
Qt. Simple as pie.

Exposure Lock in iSight

I am creating object-detection program on Mac.
I want to use iSight in manual exposure mode to improve detection quality.
I tried iGlasses & QTKit Capture to do that and it worked but program runs very slowly and unstable.
So I want to try other solution.
In PhotoBooth.app, iSight seemed to be run in fixed exposure mode so there might be a way to do that.
I read QTKit Capture documents and OpenCV documents but I couldn't find the answer.
If you have any ideas, please tell me.
Thank you.
QTKit Capture, as easy as it is to use, lacks the ability to set manual camera parameters like gain, brightness, focus, etc. If you were using a Firewire camera, I'd suggest looking into the libdc1394 library, which gives you control over all these values and more if you're using an IIDC Firewire camera (like the old external iSight). I use this library for video capture from, and control of, CCD cameras on a robotics platform.
However, I'm guessing that you're interested in the internal iSight camera, which is USB. Wil Shipley briefly mentions control of parameters on internal USB iSights in his post "Frozen in Carbonite", but most of the Carbon code he lays out controls those values in IIDC Firewire cameras.
Unfortunately, according to this message in the QuickTime mailing list by Brad Ford, it sounds like you can't programmatically control anything but saturation and sharpness on builtin iSights through the exposed interfaces. He speculates that iGlasses is post-processing the image in software, which is something you could do using Core Image filters.
I finally managed to lock my iSight's autoexposure/autowhitebalance from my Cocoa App.
Check out www.paranoid-media.de/blog for more info.
Hmmm,
I tried & googled a lot these days but I couldn't find a good idea.
I think OpenCV + cocoa + iGlasses is the fastest one but still unstable.
If you have good idea, please reply.
Thank you.
The UVC Camera Control for Mac OSX by phoboslab uses basic USB commands and documented USB interfaces to access the webcam controls. The paranoid-media.de/blog listed above links to PhobosLab and provides a few additional tweaks to that method for the iSight. (Those tweaks can now also be found in the comments at phoboslab.

Resources