XCLIB Programming Library for Linux on Intel x86-64 by EPIX empowers C/C++ and Windows, DOS, and Linux programmers to control the PIXCI series of imaging boards.
Multiple PIXCI frame grabbers can be operated selectively or simultaneously, allowing parallel control for multi-camera vision of a single event or object, or selective control for capturing multiple, independent, events or objects.
Through the unique flexibility of XCLIB and the PIXCI imaging boards, single frames or video sequences from standard RS-170, NTSC, PAL, or CCIR, from Camera Link, or from other nonstandard video sources can be captured, analyzed, displayed, and archived.
XCLIB provides high level services, allowing concentration on the imaging application, rather than focusing on board level programming.
XCLIB automatically detects and manages different versions of the PIXCI imaging boards and their intended cameras. Fundamental services, such as setting resolution, capturing, and accessing image data, are the same regardless of camera or version of imaging board.
The XCLIB C/C++ libraries allow embedding control of PIXCI imaging boards into user-written applications. Under Windows, the XCLIB DLL also enables access from existing Windows applications, such as Visual Basic, Delphi, LabView, Matlab, and many others, which support "calling" into DLLs.
XCLIB allows user-written programs to apply the PIXCI imaging boards to applications such as image enhancement, archival, analysis and measurement; event and motion study; document capture; cine-loop and ultrasound image capture; particle analysis; visual inspection; machine vision and quality control. Join the scientists and engineers in medical, industrial, and research environments who rely upon EPIX imaging solutions.
- Flexible Video Formats
- Capture standard monochrome RS-170 and CCIR formats, composite color NTSC and PAL formats, color S-VIDEO formats, as well as other nonstandard video formats.
- Flexible Video Modes
Set the number of pixels per line, subsampling of pixels in the line, lines per field, and subsampling of lines within the field. Capture interlaced video as a single interlaced image; as two images, one per field; or as a single image of the odd or even field. Supports video rate selection of capture image buffers.
Tradeoff capture resolution against number of frame buffers. With 4 Mbyte image memory, for example, resolution of 512 x 240 at 8 bits per pixel yields 34 frame buffers, 752x480 yields 11 frame buffers, and 2048 x 1020 yields 2 frame buffers.
- Camera and Device Control
Sense general purpose input signals, control general purpose output signals. Obtain elapsed field count.
Capture sequences of images at video rate, or sub-video rate. Capture images in response to external trigger.
- Image Access
Read and write frame buffers with efficient block read and write. Read and write pixels sequentially within area of interest, without concern for AOI boundaries or line interlacing. Direct access to image memory with "C" pointer.
For color cameras, access pixels as grey levels, RGB, or HSB (Hue, Saturation, Brightness), regardless of the camera's or PIXCI imaging board's native color space. Pixels may also be accessed in the board's native color space (YCrCb for the PIXCI SV2, SV3, SV4, SV5, SV5A, SV5B, SV5L, SV7), or the camera's native color space (such as raw Bayer data for Bayer output color cameras).
- Extended Features
Built-in functions provide easy import and export of images in TIF and BMP file formats, and exporting in PCX and TGA formats.
Under Windows: Built-in services provide display of captured or modified images on the S/VGA, in all or part of, one or more windows.
- Direct Live Video
- For the PIXCI SV2, SV3, SV4, SV5, SV5A, SV5B, SV5L, SV7: With a suitable S/VGA card and Windows DirectDraw support, built-in services allow displaying live video with overlays, transferring pixel data directly to the S/VGA in all or part of a window, without the programmer using the DirectDraw API/SDK.
- Easy Programming
- All basic features are available via Simple C Functions (SCF); easy to use subroutines don't require familiarity with "C" structures, pointers, etc. An example source program demonstrates use of SCF subroutines. Additionally, an extended "structured" and "object oriented" interface provides complete control of video formats, resolutions, features and options.
- Sequence Capture
- Capture sequences of images at video rate, or sub-video rate, to the extent of available host computer memory. Under Windows 95 or 98, a special "Memory Reservoir" feature allows reserving 100+ MBytes of host computer memory for image frame buffers. Under Windows NT, 2000, XP, Vista, 7, or 8 a special "Forceful Allocation" technique allows reserving almost all of computer memory (up to 4 Gbyte on 32 bit machines) for image frame buffers, excepting the memory required by Windows and BIOS.
- High Level Services
Image frame buffer access provides pixel data, interlaced if appropriate, in correct "optical order", and independent of the camera's internal scanning or multi-channel configuration.
All XCLIB services support "no-wait" and "check for completion" modes. During frame capture the host computer is not busy transferring pixel data or waiting for the next vertical blanking interval, but can proceed with concurrent processing.
- Dual Buffer 'Ping-Pong' Capture
- Capture at video rate into alternate buffers, allowing analysis of one buffer while capturing into the other.
- Multi-Buffer FIFO Capture for Video to Disk
- Capture at video rate into a circular queue of buffers, allowing image analysis or disk I/O to lag behind video capture.
- Image Processing and Analysis
The optional PXIPL Image Processing and Analysis Library, provides a wide selection of pre-written imaging routines.
The major categories include: processing, enhancements, graphic lines and shapes, text overlay, printing, morphology, filters and edge detectors, transforms, convolutions, sequence integration and averaging, image printing, image copy and resizing, single image and image pair normalizations, blob analysis, histograms and moments, image load and save, calibration, correlation, subpixel accuracy measurements, particle tracking, and image load/save with additional file formats.
PXIPL simplifies development of user-written programs in applications such as image enhancement, archival, analysis, and measurement; event and motion study; document capture; particle analysis; visual inspection; machine vision and quality control.
The PXIPL functions are not restricted to processing images which were captured by EPIX imaging boards. Images from any source, residing in PC memory, can be any size and any number of colors, limited only by availability of PC memory, and the CPU word size.
Typical PXIPL functions provide a broad spectrum of operations, allowing a single function to do the work of many functions. For example, a convolution function accepts parameters describing the image buffer, the area of interest within the buffer, the convolution size N, and the N×N kernel coefficients. This single function allows convolving with a 3×3, 9×9, 31×31, or 99×99 kernel size, limited only by available PC memory.