Adjusting camera settings

Adjusting camera settings

Hi all!

Is there any way to adjust  focus, exposure, diaphragm and other settings of video stream? It's very critical to me to control this parameters in any possible way - via either Perseptural SDK API or in the Windows level.

Thanks in advance

17 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

The application can get and set device properties through the QueryProperty and SetProperty functions. Certain device properties have multiple values. The application can use the QueryPropertyAs set of functions to retrieve them. See the Property enumerator for a list of supported device properties.For details how to use QueryProperty and SetProperty functions, you can find in the online doc @http://software.intel.com/sites/landingpage/perceptual_computing/documen...

OK, thanks. I think it's exactly what i need

I tried solution above, but it's not working well. There is a code what i'm trying. It's very simpe from  starting manual but with get/set properties functions:

#include "stdafx.h"
#include "util_render.h"
#include "util_pipeline.h"
pxcStatus sts;
pxcF32 prop;
int main()
{
    UtilPipeline pp;
    pp.EnableImage(PXCImage::COLOR_FORMAT_RGB32);
    pp.Init();
    sts=pp.QueryCapture()->QueryDevice()->QueryProperty(PXCCapture::Device::PROPERTY_COLOR_EXPOSURE,&prop);
    sts=pp.QueryCapture()->QueryDevice()->SetPropertyAuto(PXCCapture::Device::PROPERTY_COLOR_EXPOSURE,false);
    sts=pp.QueryCapture()->QueryDevice()->SetProperty(PXCCapture::Device::PROPERTY_COLOR_EXPOSURE,-6);
    UtilRender color_render(L"Color Stream");
    for (;;) {
        if (!pp.AcquireFrame(true)) break;
        PXCImage *color_image=pp.QueryImage(PXCImage::IMAGE_TYPE_COLOR);
        if (!color_render.RenderFrame(color_image)) break;
        pp.ReleaseFrame();
    }
    pp.Close();
    return 0;
}

When i  query for  PROPERTY_COLOR_EXPOSURE i obtain prop= -6 and sts=PXC_STATUS_NO_ERROR. It's well, there are no questions here.

But when i use   SetPropertyAuto and  SetProperty functions for the  PROPERTY_COLOR_EXPOSURE i obtain  sts=PXC_STATUS_ITEM_UNAVAILABLE and it doesn't have any affect on camera.

Also i should say that some parameters work well (e.g PROPERTY_COLOR_BRIGHTNESS).

PROPERTY_COLOR_EXPOSURE  represents special interest for me, so i want to deal with it.

Right now, the middleware DSSDK sets Color Exposure as read only. So you can not set PROPERTY_COLOR_EXPOSURE. 

Ok, thanks. Does Intel plan to release new version of SDK in near future?)

I should describe reason why I  wish to have PROPERTY_COLOR_EXPOSURE settings enabled. The fluorescent lights give  flickering of video stream and significantly  affects on a recognition result and video quality. To avoid this i usually use increasing exposure technique which is avaliable in many cameras.  So, in my particilar case exposure=-6 is not enough to avoid  flickering. Maybe there is another way  in  Perseptual SDK to avoid this undesirable effect?

SoftKinetic is working with OmniVision (the 2D sensor provider) to add more control to the gain, whitebalance, saturation, exposure, etc. of the 2D part of the camera, which will allow you to get around flickering, plus give you more control over the 2D sensor for other applications.  This will be dropped to Intel, who will then put it into a release.  I can't provide a date or speak for Intel, but an FYI that this is being worked on. 

Alexey

We have the same problem here in France, where the electricity frequency is 50Hz. By default, the camera driver outputs the video at 30 or 60 FPS and it conflicts with the light frequency.

Try to configure your camera to get video at 25 or 50 FPS. This worked for me, and this did not modify the image quality.

Cedric

Thanks, after I initialized the camera with 25 fps situation has  become much better. There is no flickreing any more, but now the bands frozen on the image wihout moving. Also i'm going to play with ligths in  the room to try decrease any residual effects.

Hi David,

The camera is working well with gesture recognition. But the distance between the camera and my hand is about 50-80cm (not working with the longer distance).  How can I change this distance? I need to have it work with 2-3meters.

Could you please guide me on that?

Regards,

James.

James, the camera is for close-range tracking(less than 1 meter). So you can not use it for long range gesture recognition. 

Thanks David for that info. But I'm developing a projector-camera interactive system (live wall). In order to get the big screen (projected area), the Intel cam should be placed pretty far away from the projected screen (about 2-3 meters) for recognizing gestures. Could you please give me some advice to overcome this issue?

Thanks,

James.

James, the PerC/Senz3D camera goes a max 1 meter and is a physical limination of the hardware (specifically the active illumination).  If you want to go 2-3 meters you need to use a different depth camera: Kinect for Windows, Asus Xtion, Panasonic D-Imager, Mesa, and SoftKinetic's DS311 are your off-the-shelf options today. In each of these cases you will need to use different middleware since none are PerC compatible.

Thank you Mitch! I'm still using Intel Creative Cam for this. But I'm facing another problem. The thing is that I need to detect a touch on surface (wall, table,...) using depth data. However, when my hand touches on the white surfaces (bright objects), the SDK (depth_smoothing, gesture_viewer samples) cannot detect the whole hand (fingers lost). It's also occuring with the dark objects (some works, some doesnt). So I couldn't detect if it's really a touch:(. Anyone got this problem before? Please suggest me some ideas to solve it.

Thanks,

James. 

One method is to look at the confidence map (sometimes called the IR map) in combination to the depth map.  The nice thing about a time-of-flight camera versus other 3D technologies is having this additional data.

Thanks Mitch! But can you tell me the IR map in details?

The thing is that I'm working with C++, and I have not seen any sample code about IR map in this language.

Hello everyone!

Stiil on the camera settings, I was trying to figure out if it is possible to change the frequency of the modulated signal sent from the camera, or even to know its actual value. My purpose is to obtain a higher depth resolution by increasing the signal frequency. Do you have any idea on how this can be done?

Thank you

Leave a Comment

Please sign in to add a comment. Not a member? Join today