PDA

View Full Version : Brightness - Contrast - Color Controls



Kay
November 28, 2006, 21:55:43
Hi,

I'm using ICImaging version 2.1. Are there any functions for controlling the Brightness, Contrast and the Color of the image captured?

Thanks,

Kay

Stefan Geissler
November 29, 2006, 08:55:31
Hi Kay,

No, there is no image processing functionality in IC Imaging Control. The properties you mention are only available in the hardware of the video capture device. Thus you would have to implement them on your own. There are libraries like CxImage and OpenCV avaible that might have these functionality. It is simple to forward ImageBuffers to these libraries. I can help you in this task.

Kay
November 29, 2006, 15:12:08
Hi Stefan,

I think I know what you meant to say, but to clarify, in your response, "The properties you mention are only available in the hardware of the video capture device. ". Are they available in the DFG/1394-1e or the DFG/SV1 PCI device?

Regards,

Kay

Stefan Geissler
November 30, 2006, 09:25:16
Kay,

They are available in both devices. The same is for the cameras.

If I understand you correctly, you want to enhance the image that is already in the image buffer.

If you want to control the device's properties, then yes, there are many functions:
http://www.imagingcontrol.com/ic/docs/html/class/meth_descGrabber_setProperty.htm

Kay
November 30, 2006, 15:56:23
Stefan,

Thanks for the info.

What I would like to do is allow the user to change the brightness, contrast and color for the image that I capture with your DFG/SV1 and Firewire devices. So, for example, I could provide a simple dialog with two sliders, one each for brightness and contrast. Three other sliders would allow me to control the Red, Green, anb Blue colors when capturing using the RGB24 setting.

So the question is, what calls can I make to have your hardware modify the needed hardware internal settings so that when the frameReady callback happens, the RGB values for each pixel in the frame are already modified as per the user's settings.

Regards,

Kay

Stefan Geissler
December 1, 2006, 09:55:56
Kay,

I think you want to do two different thinsg.
1.) Control the hardware. I suggest to use the built in dialog Grabber::showVCDPropertyPage()
http://www.imagingcontrol.com/ic/docs/html/class/meth_descGrabber_showVCDPropertyPage.htm
It let you control all available properties.
Alternatively you can implement your own sliders. Please have a look into the documentation of IC Imaging Control Classlibrary at:
http://www.imagingcontrol.com/ic/docs/html/class/vcdsimple.htm
A matching sample is also available in your IC Imaging Control samples directory. The ID of contrast is "VCDID_Contrast". The range, value and auto will be retrieved in exactly the same way as for brightness.

2.) Change the image data RGB.
At least there are two ways doing this. You can perform the image processing in a CGrabberListener derived class or in a FrameFilter. A FrameFilter is usable if you want to save the processed image to a file or to an AVI file.
Manipulating the RGB data is simple. The pixels are saved in BGR byte sequence. The contents of these bytes can be changed. Thus you can manipulate the RGB values of each pixel. For pixel formats please refer to:
http://www.imagingcontrol.com/ic/docs/html/class/PixelformatRGB24.htm
http://www.imagingcontrol.com/ic/docs/html/class/Pixelformat.htm

I guess you will use three sliders for the red, green and blue. If the slider values have been changed by the user, the new values should be passed either to the FrameFilter or to the CGrabberListener derived object. If you use Visual Studio 2003 then I recommend to create a small dialog based image processing sample with the IC Imaging Control project wizard and let you show the result. You only need to add the sliders to the dialog and enhance the image processing in the "Listener.cpp" file.
Please see
http://www.imagingcontrol.com/ic/docs/html/class/FirstSteps_VC71_WIZ.htm
http://www.imagingcontrol.com/ic/docs/html/class/tech_wizards.htm


(Please excuse me for referring to the documentation, but it shows in a good way how to solve you problems. )