Sensor Readout Time#

The Sensor Readout Time camera feature allows you to determine the amount of time it takes to read out the data of an image from the sensor.

Info

This feature only provides a very rough estimate of the sensor readout time. If you want to optimize the camera for triggered image acquisition or for overlapping image acquisition, use the Resulting Frame Rate feature instead.

Using the Feature#

Why Determine the Sensor Readout Time#

Each image acquisition process includes two parts:

  1. Exposure of the pixels of the imaging sensor, i.e., the exposure time.
  2. Readout of the pixel values from the sensor, i.e., the sensor readout time.

The Sensor Readout Time feature is useful if you want to estimate which part of the image acquisition process is limiting the camera's frame rate.

To do so, compare the exposure time with the sensor readout time:

  • If the sensor readout time is considerably longer than the exposure time, consider adjusting camera features that affect the sensor readout time, e.g., Binning, Decimation, or Image ROI.
  • If the sensor readout time is considerably shorter than the exposure time, consider reducing the exposure time.

Determining the Sensor Readout Time#

To determine the sensor readout time under the current settings, read the value of the SensorReadoutTime parameter. The sensor readout time is measured in microseconds.

The result is only an approximate value and depends on various camera settings and features, e.g., Binning, Decimation, or Image ROI.

Sample Code#

ace classic/U/L GigE Cameras#

// Determine the sensor readout time under the current settings
double d = camera.ReadoutTimeAbs.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Determine the sensor readout time under the current settings
double d = CFloatPtr(nodemap.GetNode("ReadoutTimeAbs"))->GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Determine the sensor readout time under the current settings
double d = CFloatParameter(nodemap, "ReadoutTimeAbs").GetValue();
// Determine the sensor readout time under the current settings
double d = camera.Parameters[PLCamera.ReadoutTimeAbs].GetValue();
// Determine the sensor readout time under the current settings
double d = Pylon.DeviceGetFloatFeature(hdev, "ReadoutTimeAbs");
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
double d = 0;
/* Determine the sensor readout time under the current settings */
errRes = PylonDeviceGetFloatFeature(hdev, "ReadoutTimeAbs", &d);
CHECK(errRes);

Other Cameras#

// Determine the sensor readout time under the current settings
double d = camera.SensorReadoutTime.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Determine the sensor readout time under the current settings
double d = CFloatPtr(nodemap.GetNode("SensorReadoutTime"))->GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Determine the sensor readout time under the current settings
double d = CFloatParameter(nodemap, "SensorReadoutTime").GetValue();
// Determine the sensor readout time under the current settings
double d = camera.Parameters[PLCamera.SensorReadoutTime].GetValue();
// Determine the sensor readout time under the current settings
double d = Pylon.DeviceGetFloatFeature(hdev, "SensorReadoutTime");
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
double d = 0;
/* Determine the sensor readout time under the current settings */
errRes = PylonDeviceGetFloatFeature(hdev, "SensorReadoutTime", &d);
CHECK(errRes);

You can also use the pylon Viewer to easily set the parameters.