| Customize Help

Using Matrox Radient eV with MIL

To use Matrox Radient eV, you must allocate it as a MIL Radient eV system (using MsysAlloc() with M_SYSTEM_RADIENTEVCL or M_SYSTEM_RADIENTCXP, depending on the version of the board). This allocation opens communications with your Matrox Radient eV and allows MIL to use its resources.

For Matrox Radient eV-CL, you can allocate a MIL Radient eV-CL system more than once for your board, in multiple processes (executables) or in the same process (although not very useful). If more than one process allocates a digitizer for the same acquisition path, grabs from the different processes will be queued in the order that they arrive (first in, first out).

For Matrox Radient eV-CXP, you can allocate a MIL Radient eV system for your board in multiple processes (executables). However, multiple processes cannot allocate a digitizer for the same acquisition path simultaneously.

Matrox Radient eV features at least one quadrature decoder that can decode input from a linear or rotary encoder with quadrature output. For more information on this feature, refer to the Using quadrature input from a rotary encoder section of Chapter 41: I/O signals and communicating with external devices. This chapter also provides information on how to configure and use the I/O signals.

Matrox Radient eV provides a GenICam CLProtocol driver to communicate with your Camera Link camera using the GenICam SFNC standard. For information regarding using MIL to access the GenICam SFNC-compatible features of your camera, see the Using MIL with GenICam section of Chapter 25: Grabbing with your digitizer.

Refer to the Matrox Radient eV release notes for any additions/modifications to the MIL Hardware-specific Notes in this chapter or in the MIL Reference.

Grabbing and the MIL buffer formats to use for each camera pixel format on Matrox Radient eV-CXP

For Matrox Radient eV-CXP, the following table outlines which MIL buffer format to use with each supported camera pixel format. Note that these are the officially supported camera pixel formats for Matrox Radient eV-CXP.

Camera pixel format 3

MIL buffer format (type and attribute)


Mono8, Mono10, Mono12, Mono14, Mono16, Mono32

1-band 8-bit, 1-band 16-bit, 1-band 32-bit, 3-band 8-bit 1 , 3-band 16-bit 2

Data will automatically be bit-shifted to have most-significant bits (MSB) in destination buffer

BayerXX8, BayerXX10, BayerXX12, BayerXX14, BayerXX16 where XX = GR, GB, BG or RG

1-band 8-bit, 1-band 16-bit

Demosaicing followed by RGB to Y (bit shift for MSB)

3-band 8-bit, 3-band 16-bit

Demosaicing (bit shift for MSB)

3-band YUV16 + M_PACKED

Demosaicing followed by RGB to YUV


1-band 8-bit

RGB to Y

3-band 8-bit

Direct copy

3-band YUV16 + M_PACKED


RGB10, RGBA10, RGB12, RGBA12, RGB14, RGBA14, RGB16, RGBA16

1-band 8-bit

RGB to Y (bit shift for MSB)

1-band 16-bit

RGB to Y

3-band 16-bit M_PLANAR

Packed destination buffers are not supported

YUV422_8, YCbCr601_422_8, YCbCr709_422_8

1-band 8-bit

Only Y component

3-band YUV16 + M_PACKED

Direct copy

1 3-band 8-bit buffers can be in any of the following formats: M_RGB24 + M_PLANAR, M_RGB24 + M_PACKED, M_BGR24 + M_PACKED, or M_BGR32 + M_PACKED.

2 3-band 16-bit buffers can be in either an M_RGB48 + M_PLANAR or M_RGB48 + M_PACKED format.

3 All of the values available for RGB are also available in BGR format.

Using the CoaXPress trigger signal on Matrox Radient eV-CXP

The CoaXPress trigger signal is an embedded bidirectional signal transmitted along the physical transport layer connection of your camera. Typically, the CoaXPress trigger signal is reserved for trigger information and is sent with other control and data signals along the same cable.

To use this signal as the source of a trigger to grab an image, use MdigControl() with M_GRAB_TRIGGER_SOURCE set to M_TL_TRIGGER. Then, program your triggered grab according to your requirements. The grab will now be triggered based on the CoaXPress trigger signal being sent to your digitizer. To use this signal to trigger the camera, use MdigControl() with M_IO_SOURCE + M_TL_TRIGGER set to the appropriate auxiliary input signals (for example, M_AUX_IO4). Note that when you set the camera to capture an image only upon a trigger, you should disable grab triggered mode on the frame grabber (M_GRAB_TRIGGER_STATE set to M_DISABLE). For more information on performing a triggered grab, see the Grabbing with triggers section of Chapter 25: Grabbing with your digitizer.

Performing Bayer color conversion in hardware

When Matrox Radient eV boards grab color images from a video source with a Bayer color filter (as specified by the DCF), it performs Bayer color conversion in hardware, as it transfers the images to the Host. If the images require white balancing, Matrox Radient eV boards can perform this automatically if white balancing is enabled using MdigControl() with M_WHITE_BALANCE set to M_ENABLE. If performing white balancing, you can use the default white balance coefficients, automatically have them calculated (using MdigControl() with M_WHITE_BALANCE set to M_CALCULATE), or set explicit coefficients (M_BAYER_COEFFICIENTS_ID). For information on Bayer color conversion, refer to the Using images acquired with a Bayer color filter section of Chapter 21: Data buffers.

If you don't want to perform Bayer color conversion in hardware, disable it using MdigControl() with M_BAYER_CONVERSION set to M_DISABLE.

The M_BAYER... control types of MdigControl() can only be used when grabbing from a camera that has a Bayer color filter (as specified by the DCF); otherwise, an error will be generated.

Using frame burst with a multi-frame buffer

All version of Matrox Radient eV-CL and Matrox Radient eV-CXP support frame burst technology. This technology allows you to grab a group of sequential frames into a multi-frame buffer with one grab command (MdigGrab(), or one grab of MdigProcess()); the defined number of frames are stored contiguously in the same buffer. The end-of-grab event only occurs once the entire group of frames has been grabbed, reducing the number of events that need to be handled. This is useful in cases where you have a high frame rate and need to ensure that no frames are missed. Note that a user-defined function hooked to the end-of-grab event (MdigProcess(), or MdigHookFunction() with M_GRAB_END) is executed only once the entire group of frames has been grabbed. For information on creating a multi-frame image buffer to store sequential frames, see the Specifying the dimensions of a multi-frame image buffer subsection of the Specifying the dimensions of a data buffer section of Chapter 21: Data buffers.

Extracting peaks from an on-board multi-frame image buffer

Matrox Radeint eV-CXP Quad CXP for 3D profiling can perform MimLocatePeak1d() on-board without Host intervention if the specified buffer is an on-board buffer. This functionality is only available on this version of Matrox Radient eV-CXP. Supporting this function on-board allows the board to perform sheet of light (laser line) extraction. The sheet of light must appear horizontally in the image. The board can extract more than one peak per lane (up to 3). In addition, the board can operate on a single frame or multi-frame on-board image buffer. For more information on how to use MimLocatePeak1d() for peak extraction from a multi-frame image buffer, see the Extraction of peaks from a multi-frame buffer subsection of the Peak intensity detection and depth maps section of Chapter 5: Specialized image processing.