PDA

View Full Version : ROI & CPU usage



andrewts
May 26, 2011, 11:50:08
I’m using two USB cameras (DFK 72AUC02), and they consume a lot of processor resources.
I’d like to reduce the CPU usage by using a ROI, because I don’t need the leftmost and the rightmost part of the image. Does this reduce the CPU usage or not so much, because the ROI is applied once the image is received on the computer?
The only way I found to set a ROI is the “ROI” filter, right? I can set a lower camera resolution and this is like a ROI, but I’m not able to set the origin point. Is that possible?
The last question: have you some suggestions to reduce the CPU usage of the cameras?
Thanks for the kind attention,
Andrea

Stefan Geissler
May 26, 2011, 14:54:01
Hello Andrea,

If you use the correct ROI, then the amount of data transferred from the camera to comptuer and the calculations on the images are reduced. You set the ROI for this camera by specifying an appropriate video format e.g. "RGB32 (2000x1400)". This results in an ROI on the sensor.

andrewts
May 27, 2011, 14:25:35
Ok, but I have another question: if I set the format RGB32 (2000x1400), this results in a ROI from the point 0,0 to the point 2000, 1400. There is a way to specify the origin point, for example to set a ROI from the point 280, 260 to the point 2280, 1660?

Thanks

Stefan Geissler
May 27, 2011, 15:06:03
No, the ROI is in the middle of the sensor, this is default behavior. This can be disabled and then the ROI can be moved on the sensor.

Stefan Geissler
June 28, 2013, 09:53:06
For using the DFK 72, DFK 23GP031, DFK 23UP031 DFK 23FP031.

The ROI is centered on the sensor by default. But it can be moved on the sensor. For doing so, the
ROI Auto Center property must be set to false. Then the ROI Offset X and Y values can be set. This
can be be done, while the live video is running, so you can search on the sensor:

Unfortunately I have the sample code in C# only.



//Required variables
TIS.Imaging.VCDPropertyItem ROI = null;
TIS.Imaging.VCDSwitchProperty ROI_AutoCenter_Switch = null;
TIS.Imaging.VCDRangeProperty ROI_offset_X = null;
TIS.Imaging.VCDRangeProperty ROI_offset_Y = null;

//Getting the elements and interfaces
ROI = icImagingControl1.VCDPropertyItems.FindItem(TIS.Im aging.VCDIDs.VCDID_PartialScanOffset);
ROI_AutoCenter_Switch =
(TIS.Imaging.VCDSwitchProperty)ROI.Elements.FindIn terface(TIS.Imaging.VCDIDs.VCDElement_PartialScanA utoCenter
+ ":" + TIS.Imaging.VCDIDs.VCDInterface_Switch);
ROI_offset_X =
(TIS.Imaging.VCDRangeProperty)ROI.Elements.FindInt erface(TIS.Imaging.VCDIDs.VCDElement_PartialScanOf fsetX
+ ":" + TIS.Imaging.VCDIDs.VCDInterface_Range);
ROI_offset_Y =
(TIS.Imaging.VCDRangeProperty)ROI.Elements.FindInt erface(TIS.Imaging.VCDIDs.VCDElement_PartialScanOf fsetY
+ ":" + TIS.Imaging.VCDIDs.VCDInterface_Range);

//turn off roi autocenter
ROI_AutoCenter_Switch.Switch = false;

//setting the offset values
ROI_offset_X.Value = 800;
ROI_offset_Y.Value = 10;