xiQ - Technical Manual Version 1.0
69
5.
Software
5.1.
Accessing the Camera
Depending on the target application, the user can choose between several ways of accessing and controlling the camera. These
can be divided into two categories: a programmatic approach, through programming code, or an integrated approach, through a
supported, GUI based software package. The programmatic approach is generally used for the development of a custom
application or image processing pipeline. The integrated approach is favored, if the specific toolset of a certain software package
is sufficient and the camera serves as an integrated capture device.
5.1.1.
Proprietary API
All XIMEA cameras are supported by the same unified APIs (application programming interface). The API is a software interface
between the camera system driver and the application. Different APIs are available for different programming environments, e.g.
xiAPI
) for C/C++ developments and
xiAPI.Net
for C#/.Net based developments
5.1.2.
Standard Interface
As an alternative to the proprietary API, the camera can be accessed through a set of standard interfaces. These interfaces
decouple a specific hardware design (e.g. physical interface) of a camera from its control in software. Therefore multiple camera
classes and types can be used in a unified way.
5.1.2.1.
GenICam
provides a camera-agnostic transport layer interface to acquire images or other data and to communicate with
a device. Each camera serves as a
GenTL Producer
which can be accessed in all software packages that are compatible with the
GeniCam standard, as well as through custom developments which implement this standard interface.
5.1.2.2.
USB3 Vision
standard not only defines hardware specifications and communication protocols, but also enables a library
vendor or application developer to set up a software stack including their own drivers and the GenICam programming interface.
This allows the usage of any USB3 Vision compliant device while relying on mechanisms for device discovery and identification,
control, and image streaming which are defined by the standard.
5.1.2.3.
DirectShow
DirectShow is a universal camera interface for the Windows operating systems. This interface provides the option to use the
camera in application developments based on the DirectX SDK, as well as all third-party software packages and tools which
implement DirectShow for video capture.
5.1.3.
Vision Library Integration
All XIMEA cameras are compatible with the most advanced vision and image processing libraries. For GUI based software
packages, the cameras can be directly accessed without the need of programming. Code libraries are generally used in
conjunction with one of our APIs, in order to add additional functionality (e.g. image processing, communication, data storage).
5.2.
Supported Vision Libraries
For an up-to-date lasting of the supported vision libraries and software packages, visit our web site
http://www.ximea.com/support/projects/vision-libraries/wiki.