Image Capture Tool

Introduction

The Image Capture Tool (AxsunImageCaptureTool.exe) is a software interface for users of the Axsun Ethernet/PCIe DAQ. It provides a tab- and button-based GUI to easily view the captured image data transmitted from the DAQ device by exposing functionality in the AxsunOCTCapture API. It supports image capture over Gigabit Ethernet and PCIe interfaces, as well as DAQ imaging mode controls over the PCIe interface only.

The Image Capture Tool is not intended to be a fully-featured OCT image capture and analysis application, but rather a springboard for integrating the AxsunOCTCapture API into the user's custom OCT imaging application. The Image Capture Tool's primary functions include:

  • Retrieve and Display OCT data (unprocessed or processed images) transmitted by the DAQ

    • Supports all data types (8-bit, 16-bit, 32-bit, complex)

  • Indicate DAQ imaging mode, status of data buffer and Image_sync synchronization trigger

  • Save and load data buffers to/from disk

  • Expose secondary AxsunOCTCapture API features such as:

    • OpenGL-based rendering, image cropping, image averaging, etc.

  • Control DAQ imaging mode (PCIe interface only)

  • Control 2-axis galvo raster scan pattern via NI USB-6211 multi-function I/O device

Compatibility Requirements

The Image Capture Tool is compatible with 64-bit versions of Windows OS from Windows 7 through Windows 10. An available 1Gbps Ethernet port is required for connecting to the Ethernet DAQ via network interface, or an available PCIe Gen 1 x8 port is required for connecting to the PCIe DAQ. Because the Ethernet/PCIe DAQ performs FPGA-based OCT image formation on the DAQ board, computer requirements such as CPU speed, processor cores, and available RAM are typically satisfied by "consumer-level" personal computer platforms available from 2014 onward.

NOTE: For best performance, disable any malware protection utilites which may impede network traffic and avoid running other applications which compete for network bandwidth.

The Image Capture Tool and the AxsunOCTCapture library do not support the Axsun Camera Link DAQ. A PCIe frame grabber and its associated software is required to capture image data transmitted from the Camera Link DAQ. More information on the Axsun Camera Link DAQ can be found here.

Installation

To install the Image Capture Tool and its dependencies, download the most recent version from www.axsun.com/downloads and follow the complete software installation instructions for the Axsun Integrated Engine.

Using the Image Capture Tool

NOTE: Your screen may not match exactly with the screen representations shown in this guide, depending on your system configuration and installed firmware/software versions.

  • The selected session type will be indicated at the top of the window:

  • If installation errors were encountered when starting the session, the Image Capture Tool will support review of previously saved data files only. See the DAQ Troubleshooting article to overcome the errors and then try again.

Image Capture Status Indicators

The bottom of the Image Capture Tool window has lights to indicate the following when lit (also see Capture API documentation for axGetStatus()):

  • Live Imaging: data is actively being transmitted from the DAQ and is being enqueued in the Main Image Buffer.

  • Recorded: image data displayed is/was acquired in Burst Record mode.

  • Image_sync Trigger Too Fast: the frequency of the trigger signal connected to the Image_sync input exceeds the allowable maximum (≈390 Hz for a laser with 100 kHz A-line rate).

  • Image_sync Trigger Too Slow (Force Triggered): the frequency of the trigger signal connected to the Image_sync input is too slow and the newest frame has been displayed in Force Trigger mode (see Capture API documentation for axSetTrigTimeout()).

Use the Requested Image # field to control the image number requested for display. This can be a unique image number, or it can be set equal to -1 to display the most recently enqueued image in the buffer. Numeric indicators show the actual Returned Image #, and the Width & Depth dimensions of the displayed image (see Capture API documentation for axGetImageInfo() and axRequestImage()).

Image capture status indicators.

If Burst Recorded images are present in the Main Image Buffer, depressing the Loop button will automatically replay the recorded images from start to finish and then restart in a looping fashion.

Image Display Window Tabs

The Image Capture Tool window contains four greyscale B-scan image indicators on separate tabs for the four possible data types that the DAQ can generate (depending on its configured bypass mode):

  • 8-bit (unsigned)

  • 16-bit (signed or unsigned)

  • 32-bit (unsigned)

  • 16-bit complex (signed with RealReal component shown on left of display and ImagImag component shown on right of display)

The Image Capture Tool will automatically switch to the appropriate image indicator tab when it detects a change in the data type for the displayed image.

Image indicator showing a 8-bit greyscale B-scan image.

The Single A-Scan tab displays a graph with a single A-scan's amplitude as a function of sample number (e.g. z-dimension or depth in a processed OCT image). Select the desired A-scan to display in this graph using the A-scan # control.

Graph showing an A-scan's amplitude as a function of sample number.

NOTE: Image and graph indicators provide standard LabVIEW-based interaction tool palettes for zooming in & out, panning, changing the range of x, y, and z (colorscale) axes, etc:

Axis AutoScaling can be toggled by right-clicking on an axis and checking or unchecking the AutoScale selection from the pop-up menu:

More details on interactive LabVIEW graph tools can be found at www.ni.com.

Some display tabs also provide Save Image buttons which export the image currently displayed in the associated indicator into a raw binary, PNG, or CSV file. Saving individual images in this fashion is an Image Capture Tool application-level function and is not supported by underlying Capture API functionality.

Control and Indicator Tabs

Additional Image Capture Tool functionality is grouped onto several tabs on the right side of the main window. The following sections highlight the relevant controls and indicators available on each tab, and their associated AxsunOCTCapture API functions. Refer to the AxsunOCTCapture API documentation and function reference for more information on the underlying behavior of these controls and indicators.

Image Controls

The Image Controls tab provides basic display controls for image cropping, image averaging, and OpenGL rendering and window behavior.

Control or Indicator Name

Associated Capture API Function and Arguments

Notes

Request Mode

request_mode argument of axRequestImageAdv()

Also calls axHideWindow() to show or hide the OpenGL image display window depending on the selected mode.

Average #

average_number argument of axRequestImageAdv()

Averaging will not work in Force Trigger mode.

JPEG Downsample x2

axDownsampling()

Speeds up JPEG decompression by trading off image resolution.

Start A-scan Offset

start_Ascan argument of axImageRequestSize()

Total A-scans

total_Ascans argument of axImageRequestSize()

axSetupDisplay

axSetupDisplay()

Initiates OpenGL rendering functionality.

Polar Scan Convert

convert argument of axScanConvert()

Supports display of OCT images catpured using a rotational scanning device.

Interpolation

interpolation argument of axScanConvert()

Colormap

axSelectColormap()

Contrast, Brightness

axAdjustBrightnessContrast()

Window Size

axUpdateView()

Crop Dimensions

axCropRect()

axScanConvert() also provides cropping functionality in the polar domain.

Buffer

The Buffer tab provides an indication of the current Main Image Buffer status, an ability to Save and Load buffers to/from a file for offline storage and retrieval, and other status information related to session initialization.

Control or Indicator Name

Associated Capture API Function and Arguments

Notes

Buffer Status

axGetStatus()

LOAD

axLoadFile()

Status queried with immediate call to axGetMessage()

SAVE

axSaveFile()

Status queried with immediate call to axGetMessage()

CLEAR

axClearBuffer()

Scanner status:

axScanCmd(init_scan) status (success or error message)

Queried with immediate call to axGetMessage()

axStartSession status:

axStartSession() or axStartSessionPCIe() status (success or error message)

Queried with immediate call to axGetMessage()

Path to AxsunOCTCapture.dll library:

Library file which Image Capture Tool has loaded (debugging info).

Packet Details

Axsun Technical Support personnel may request information from the Packet Details tab when troubleshooting or assisting with debugging efforts.

Scanner

The Scanner tab provides controls for a connected NI USB-6211 multi-function I/O device, commonly used to generate a raster-scan waveform for a 2-axis galvo scanner.

Control Name

Associated Capture API Function and Arguments

Notes

STOP SCAN

axScanCmd() with scan_command argument set to stop_at_position

1D LINE SCAN

axScanCmd() with scan_command argument set to continuous_line_scan

2D RASTER SCAN

axScanCmd() with scan_command argument set to continuous_raster_scan

Scan Pattern

axScanCmd() with scan_command argument set to set_rect_pattern

scan_parameters argument defines the raster pattern points, dimensions, and other characteristics.

Sample Clock

axScanCmd() with scan_command argument set to set_sample_clock

Auto Restart

If ON, changes to the Scan Pattern control will immediately update the currently executing scan pattern.

NOTE: The Scanner controls tab will be disabled if a compatible NI USB-6211 device was not connected and recognized during Image Capture Tool startup. Quit the Image Capture Tool, connect the device, and relaunch the Image Capture Tool to enable this tab.

PCIe

The PCIe tab provides basic controls for DAQ Imaging Mode and low-level FPGA register R/W access when connected to a DAQ via the PCIe interface.

Control Name

Associated Capture API Function and Arguments

Notes

PCIeDAQ: LIVE

axImagingCntrlPCIe(-1)

PCIeDAQ: OFF

axImagingCntrlPCIe(0)

PCIeDAQ: RECORD

axImagingCntrlPCIe(N)

N is the number entered in the associated Images field.

WRITE (PCIe Registers)

axWritePCIeFPGAreg()

regnum and regval arguments as entered in the associated RegNum and RegVal fields. (For Axsun internal use only.)

READ (PCIe Registers)

axReadPCIeFPGAreg()

Reads all registers in a loop and lists hex and decimal values in the associated table. (For Axsun internal use only.)

WRITE (FPGA Registers)

axWriteFPGAreg()

regnum and regval arguments as entered in the associated RegNum and RegVal fields.

READ (FPGA Registers)

axReadFPGAreg()

Reads all registers in a loop and lists hex and decimal values in the associated table.

Pipeline Mode

axPipelineMode()

NOTE: The PCIe controls tab will be disabled unless a PCIe capture session was successfully started by selecting the PCIe interface at Image Capture Tool startup (also seeaxStartSessionPCIe()). The controls and associated API function calls on this tab are not operational when connected to a DAQ via the Ethernet or USB interfaces.

Quitting the Image Capture Tool

To exit the Image Capture Tool simply close the main window by clicking the "x" icon in the upper right corner.