Back to Adaptive Vision Library Lite website

You are here: Start » Basler » Pylon_GrabImage



Captures an image stream from a camera using Pylon library.


bool avl::Pylon_GrabImage
	Pylon_State& ioState,
	atl::Optional<const atl::String&> inDeviceID,
	int inOutputQueueSize,
	atl::Optional<avl::PylonImageFormat::Type> inPixelFormat,
	atl::Optional<float> inFrameRate,
	atl::Optional<const avl::Box&> inAoi,
	atl::Optional<float> inExposureTime,
	atl::Optional<float> inGain,
	atl::Optional<float> inBlackLevel,
	atl::Optional<bool> inTriggerEnabled,
	atl::Optional<avl::PylonTriggerSource::Type> inTriggerSource,
	atl::Optional<avl::PylonTriggerActivation::Type> inTriggerActivation,
	avl::Image& outImage,
	atl::int64& outFrameID,
	atl::int64& outTimestamp


Name Type Range Default Description
ioState Pylon_State& Object used to maintain state of the function.
inDeviceID Optional<const String&> NIL Serial number, model name, user defined name or full name of camera device to be opened
inOutputQueueSize int 1 - 200 3 Capacity of output frames queue
inPixelFormat Optional<PylonImageFormat::Type> NIL Image pixel format
inFrameRate Optional<float> 0.1 - 400.0 NIL Requested camera frame rate in frames per second
inAoi Optional<const Box&> NIL Required fragment of image to stream. To reset AOI set Box(0,0,0,0).
inExposureTime Optional<float> 0.0 - NIL Camera frame exposition time
inGain Optional<float> 0.0 - NIL Analog gain of source image in device raw unit
inBlackLevel Optional<float> 0.0 - NIL Black level of source image
inTriggerEnabled Optional<bool> NIL Configure trigger enable
inTriggerSource Optional<PylonTriggerSource::Type> NIL Source of acquisition trigger
inTriggerActivation Optional<PylonTriggerActivation::Type> NIL Circumstances defining when the trigger is activated
outImage Image& Captured frame
outFrameID int64& Captured frame ID
outTimestamp int64& Captured frame timestamp


Camera driver software

This filter is intended to cooperate with a camera using its vendor SDK. To be able to connect to a camera, it is required to install Pylon SDK software with camera dedicated drivers.

Pylon SDK can be downloaded from the following website: (registration may be required).

Recommended Pylon SDK version for Adaptive Vision Studio usage is 5.2.

Camera identification

When there is only one camera connected to a computer, field inDeviceID can be set to Auto. In this case, first available camera will be found and connected.

inDeviceID field can be used to pick one of multiple cameras connected to computer. DeviceID can be set to:

  • Serial number - should be specified on device casing, for example "12345678".
  • User defined name - user defined device name.
  • Friendly name - human readable name of the device.
  • Device full name - full name identifying the device.
  • Model name - model name of the device.
  • Ip Address - camera IP address. Only for GigEVision cameras.
Camera parameters

Setting inAoi parameter to 'Auto' will select maximum possible camera frame size.

All the other parameters exposed by camera filters are optional, setting them to 'Auto' leaves related parameter unchanged in camera (device default or user set configuration).

To change other, more advanced camera parameters, use configuration tool "Pylon Viewer" available with Pylon SDK or Pylon_SetXXXParameter filters. Refer to Pylon documentation to find information about parameters and how to create user parameters sets.

Output outFrameId
  • IEEE 1394 Camera Devices - The value of block ID is always -1.
  • GigE Camera Devices - The sequence number starts with 1 and wraps at 65535. The value 0 has a special meaning and indicates that this feature is not supported by the camera.
  • USB Camera Devices - The sequence number starts with 0 and uses the full 64 Bit range.

A block ID of value -1 indicates that the Block ID is invalid and must not be used.

Output outTimeStamp

In case of GigE-Vision this describes when the image exposure was started. Cameras that do not support this feature return zero. If supported this may be used to determine which ROIs were acquired simultaneously.

In case of FireWire this value describes the cycle time when the first packet arrives.

Multithreaded environment

This function is not guaranteed to be thread-safe. When used in multithreaded environment, it has to be manually synchronized.

See Also

  • Pylon_GrabImage_WithTimeout – Captures an image stream from a camera using Pylon library; returns Nil if no frame comes in the specified time.