Frame Grabber & Camera Drivers

Introduction

Along with the development libraries, SAL3D provides also drivers from some frame grabbers and for some cameras, allowing an easy acquisition through the FrameGrabber interface.

Specified in each driver is the version of the manufacturer SDK used to build it. It should be possible to recompile the driver (as we provide the sources) for newer versions of the SDK, provided that the API has not changed.

Frame Grabber drivers list:

Camera drivers list:

Time-Of-Flight cameradrivers list:

Others:

In addition to the drivers included in the SAL3D package, some camera manufacturer provide examples to combine their cameras with SAL3D. This is the case of Automation Technology and Ximea. Automation Technology added to the GUI of their cameras SAL3D features like 3D metric calibration and the option to compute metric distance between points on a range map. Ximea includes on their website an example how to apply the peak detector on an image acquired using their cameras.

Silicon Software microEnable III/IV (sisome4.fgd)

Note:
The driver has been built using the SDK v5.0

This driver allows acquiring frames from a Silicon Software microEnable III/IV frame grabber card. It initializes the card from a MCF config file on first load of the driver. If the FrameGrabber::FrameGrabber constructor passes a null string parameter to the driver, on fgd loading it will pop up a Windows UI file open dialog to get the MCF file. Otherwise, the string parameter should be a pipe "|" separated list of the following parameters:

For example:

Following is a list of considerations regarding the driver and the way it works:

DALSA Sapera supported cards (sapera.fgd)

Note:
The driver has been built using the SDK v7.00

This driver allows acquiring frames using the Sapera library backend. It has been tested and is known to work at least with the DALSA X64 XCelera-CL PX4. The configuration parameter fed to the constructor may be empty, in which case a dialog will appear to choose from a CCF configuration file. Otherwise, it must be a pipe "|" separated combination of the following parameters:

For example:

Remarks:
It is possible to specify a configuration file and several of the other parameteres, like size. In this case, the ones prevailing are the ones specified through the parameter, not the ones in the configuration file.

Following is a list of some details concerning how the driver works:

Imperx supported cards (imperx.fgd)

Note:
The driver has been built using the SDK v1.2.0.78

This driver allows capturing frames from an Imperx frame grabber. It has been tested with a FrameLink Express card but it should work with other models.

The driver expects a configuration parameter. If it is empty, a dialog will appear asking for a configuration file. Otherwise, a pipe "|" separated list of the following parameters may be given (the configuration file is mandatory):

Example:

Warning:
The reconfig function is still not supported.

Matrox supported cards (matrox.fgd)

Note:
The driver has been built using the SDK v9.00.1950(R2)

This driver allows acquiring frames from a Matrox frame grabber card, and has been tested with a Solios eV-CL.

The configuration parameter fed to the constructor may be empty, in which case a dialog will appear to choose from a DCF configuration file. Otherwise, it must be a pipe "|" separated combination of the following parameters:

For example:

Following is a list of considerations regarding the driver and the way it works:

Bitflow supported cards (bitflow.fgd)

Note:
The driver has been built using the Bitflow SDK v5.40

This driver allows capturing frames from a BitFlow frame grabber.

The driver allows a configuration parameter. A pipe "|" separated list of the following parameters may be given:

Example:

Warning:
The reconfig function is still not supported.

IDS Camera (ids.fgd)

Note:
The driver has been built using the SDK v3.70

The IDS driver is tested and known to work with a USB microEye LE, but it should support any GigE or USB camera of the manufacturer.

Several configuration parameteres can be given to the driver through the configuration parameter, all of them separated by a pipe "|":

You can check your camera manual for valid values of those parameters.

Example:

Point Grey Cameras (flycapture.fgd)

Note:
The driver has been built using the FlyCapture SDK v2.1.03.05(r5)

The FlyCapture driver is tested and known to work with a Firefly MV and Chameleon, but it should support any camera of the manufacturer.

Warning:
In order for the driver's lost frames method to work, the frame counter embedded information is enabled when the driver is loaded. This means that the first 4 pixels of the first row of the image are overwritten with this information.
The camera only accepts a ROI defined by multiples of 4. Not complying with this rule will make the driver load fail.

Several configuration parameteres can be given to the driver through the configuration parameter, all of them separated by a pipe "|":

You can check your camera manual for valid values of those parameters.

Example:

Ximea cameras (ximea.fgd)

Note:
The driver has been built using the Ximea SDK v1.0

The Ximea driver is tested and known to work inside Currera cameras. but it should support any camera of the manufacturer.

Several configuration parameteres can be given to the driver through the configuration parameter, all of them separated by a pipe "|":

You can check your camera manual for valid values of those parameters.

Example:

Mesa Imaging TOF cameras (mesa.fgd) (only for 32-bit SAL3D)

Note:
The driver has been built using the Mesa SDK v1.0.14.706

The driver does not accept any parameters by now, and can acquire both COP and Frame using the TOFFrameGrabber interface.

File Frame Grabber (file.fgd)

With this driver, Frames stored in files can be provided as Frames acquired through a FrameGrabber. This may help debugging the Frame processing part of a program. The supported Frame file types are related to the Frame::Frame constructor which reads the picture from a file.

When loading the driver, if the string parameter of the FrameGrabber::FrameGrabber constructor is null, it will pop up a dialog asking for a list of picture files to open. Otherwise it expects a parameter specifying either a picture file or a file containing a list of pictures to be opened, in the form:

Example:

All files are read at the initialization of the FrameGrabber driver, and they are stored in memory until destruction of the object. This way, Frames can be delivered quickly to the program grabbing from the related FrameGrabber object, although being constrained by the virtual memory available to the program.

After delivering the last file on the list, the first file will be delivered on next FrameGrabber::frame(). The FrameGrabber::wait() function will never block.

On reconfiguration, the image files are re-read from the given parameter.