This article needs additional citations for verification. (October 2008) (Learn how and when to remove this template message)
GenICam (abbreviated for Generic Interface for Cameras) is a generic programming interface for machine vision (industrial) cameras. The goal of the standard is to decouple industrial camera interfaces technology (such as GigE Vision, CoaXPress or Camera Link) from the user application programming interface (API). GenICam is administered by the European Machine Vision Association (EMVA). The work on the standard began in 2003  and the first module in GenICam, i.e., GenApi, was ratified in 2006 whereas the final module, i.e., GenTL was ratified in 2008.
Many companies in the machine vision industry have contributed to the standard. The main companies involved in drafting the GenICam standards are:
- Allied Vision Technologies
- Basler AG
- e2v semiconductors
- FLIR Integrated Imaging Solutions (formerly known as Point Grey Research Inc. which FLIR Systems Inc. acquired in 2016)
- JAI Pulnix
- Leutron Vision
- MATRIX VISION
- Matrox Imaging
- MVTec Software
- National Instruments
- Stemmer Imaging
With many companies involved in drafting GenICam standard and the interoperability benefit that it is hoped to offer, machine vision manufacturers have already started to use GenICam in their products. However, companies who helped developing the standard are taking a "two-way approach" where they still are developing proprietary SDK. It is yet to be seen if GenICam can replace all SDK development and achieve its intended goals of interoperability and, eventually, cheaper machine vision products.
GenICam consists of three modules to help solving the main tasks in machine vision field in a generic way. These modules are:
- GenApi: Using an XML description file, this is used to configure the camera and details how to access and control cameras;
- Standard Feature Naming Convention (SFNC): This is the recommended names and types for common features in cameras to promote interoperability;
- GenTL: This is the transport layer interface for enumerating cameras, grabbing images from the camera, and moving them to the user application.
GenICam provides supports for five basic functions:
- Configuring the camera—This function could support a range of camera features such as frame size, acquisition speed, pixel format, gain, image offset, etc.
- Grabbing images—This function will create access channels between the camera and the user interface and initiates receiving images
- Graphical user interface—This function enables user GUI interface to seamlessly talk to the camera(s)
- Transmitting extra data—This function enables cameras to send extra data on top of the image data. Typical examples could be histogram information, time stamp, area of interest in the frame, etc.
- Delivering events—This function enables cameras to talk to the application through an event channel.
- "GenICam - The NEW standard for Machine Vision". Adept Turnkey. September 2007. Retrieved 2017-07-18.
- "Status". EMVA. Retrieved 2017-07-18.
- "MVTec again part of GenICam Board". MVTec. 2013-04-30. Retrieved 2017-07-18.
- "Will Changing Machine Vision Standards Cut Costs and Boost Performance?". Photonics Media. January 2008. Retrieved 2017-07-18.
- "New GenICam standard for cameras". Ferrett. 2006-11-08. Archived from the original on 2016-04-02. Retrieved 2017-07-18.