Please enable JavaScript to view this site.

IDS Software Suite 4.96.1

Windows_Logo
Linux_Logo

USB 2.0

USB 3.x

GigE

USB 2.0

USB 3.x

GigE

Syntax

INT is_GetImageInfo (HIDS hCam, INT nMemId, UEYEIMAGEINFO *pImageInfo, INT nImageInfoSize)

Description

is_GetImageInfo() provides additional information on the images you take. The function returns a timestamp indicating the time of image capture, and the states of the camera I/Os at that point in time. To get information on the last image that was taken, call is_GetImageInfo() directly after receiving the IS_SET_EVENT_FRAME event.

Using the function with GigE and USB 3 uEye cameras

The UEYEIMAGEINFO structure returns the camera timestamp u64TimestampDevice, which indicates the time of image capture with a resolution of 0.1 μs. The time of image capture is defined as:

The time when a (hardware or software) trigger event is received by the camera in trigger mode. The delay between the receipt of the trigger signal and the start of exposure depends on the sensor.

The time when the sensor starts to output image data in freerun mode (see also How to proceed: Image capture). A rolling shutter sensors starts to output image data after exposure of the first row. With a global shutter sensor, image data is output after exposure of all rows.

The UEYETIME structure returns a timestamp with a resolution of 1 ms. The timestamp is synchronized with the PC's system time, and resynchronized every 60 seconds. This may cause minor time shifts in the value passed in UEYETIME (average time about 3 ms).

To determine the exact interval between two image captures, it is therefore recommended to read out the camera timestamp u64TimestampDevice.

Using the function with USB 2 uEye cameras, USB 3 uEye CP Rev. 1 and USB 3 uEye LE cameras (from version 4.82 on)

The u64TimestampDevice timestamp returns the time when image data transfer to the PC was completed.

The UEYETIME structure returns the timestamp (with a resolution of 1 ms) synchronized with the PC system time.

For the normal trigger mode (without overlapping trigger), the following formula can be used to calculate approximately the time stamp for the start of image acquisition:

u64TimestampDevice -= static_cast<uint64_t>((frametime_inc * static_cast<double>(aoi.s32Height) * 10000000.0) + (exposure * 10000.0));

hint_info

Image buffers that are part of a sequence need to be locked using is_LockSeqBuf(). This is important to ensure correct assignment between image data and image information. Otherwise, it may happen that an image buffer is filled with new image data. In this case, the image information will not match the image data any more.

Input parameters

hCam

Camera handle

nMemId

ID of the image buffer for which information is requested

pImageInfo

Pointer to a UEYEIMAGEINFO type structure to which the information will be written

nImageInfoSize

Size of the structure

Contents of the UEYEIMAGEINFO structure

DWORD

dwFlags

Internal status flags (currently not used)

BYTE

byReserved1[4]

Reserved

UINT64

u64TimestampDevice

Internal timestamp of image capture (tick count of the camera in 0.1 μs steps)

UEYETIME

TimestampSystem

Structure with timestamp information in PC system time format, see UEYETIME below

DWORD

dwIoStatus

With GigE and USB 3 uEye cameras: Returns the states of the digital I/Os at the time of image capture:

Digital input (trigger): Pending signal

GPIO as input: Pending signal

GPIO as output: Set level

With all other cameras, dwIoStatus is empty. See dwIOStatus below.

WORD

wAOIIndex

AOI index (only sequence AOI mode of UI-124x/UI-324x/UI-524x and UI-125x/UI-325x/UI-525x)

WORD

wAOICycle

Readout cycles (only sequence AOI mode of UI-124x/UI-324x/UI-524x and UI-125x/UI-325x/UI-525x)

unsigned long long

u64FrameNumber

Internal image number (not chronological)

Note: Use u64TimestampDevice to get the right image sequence.

DWORD

dwImageBuffers

Number of image buffers existing in the camera

DWORD

dwImageBuffersInUse

Number of image buffers in use in the camera

DWORD

dwReserved3

Reserved

DWORD

dwImageHeight

Image height

DWORD

dwImageWidth

Image width

DWORD

dwHostProcessTime

DIB mode only: Time in µs which was used for image processing (time difference between raw image data arrival and the setting of the frame event). The value is an indication of the maximum possible frame rate.

BYTE

bySequencerIndex

Sequencer-set used for this image acquisition, when the sequencer-mode was active. See is_Sequencer() to get more info about this set.

DWORD

dwFocusValue

uEye LE USB 3.1 Gen 1 AF: Returns the focus settings that were used to capture the image.

BOOL

bFocusing

uEye LE USB 3.1 Gen 1 AF: Returns if autofocus was active when the image was captured.

Status flags in UEYEIMAGEINFO::dwIoStatus

Bit combination

State of digital input

State of GPIO 1

State of GPIO 2

000

0

0

0

001

0

0

1

010

0

1

0

011

0

1

1

100

1

0

0

101

1

0

1

110

1

1

0

111

1

1

1

Contents of the UEYEIMAGEINFO::UEYETIME structure

WORD

wYear

Timestamp year

WORD

wMonth

Timestamp month

WORD

wDay

Timestamp day

WORD

wHour

Timestamp hour

WORD

wMinute

Timestamp minute

WORD

wSecond

Timestamp second

WORD

wMilliseconds

Timestamp millisecond

BYTE

wReserved[10]

Reserved

Return values

IS_INVALID_CAMERA_HANDLE

Invalid camera handle

IS_INVALID_PARAMETER

One of the submitted parameters is outside the valid range or is not supported for this sensor or is not available in this mode.

This may happen when e.g.:

more memory is allocated than the UEYEIMAGEINFO structure needs

nImageBufferID <= 0

pImageInfo == NULL

nImageInfoSize <= 0

IS_NO_SUCCESS

General error message

IS_SUCCESS

Function executed successfully

Related functions

is_CaptureStatus()

is_LockSeqBuf()

is_UnlockSeqBuf()

is_SetImageMem()

is_IO()

is_DeviceFeature()

Example

UEYEIMAGEINFO ImageInfo;
// Read out camera timestamp
INT nRet = is_GetImageInfo( m_hCam, m_lMemoryId, &ImageInfo, sizeof(ImageInfo));
if (nRet == IS_SUCCESS)
{
unsigned long long u64TimestampDevice;
  u64TimestampDevice = ImageInfo.u64TimestampDevice;  
 
CString Str; // Read out timestamp in system time
Str.Format("%02d.%02d.%04d, %02d:%02d:%02d:%03d",
        ImageInfo.TimestampSystem.wDay,
        ImageInfo.TimestampSystem.wMonth,
        ImageInfo.TimestampSystem.wYear,
        ImageInfo.TimestampSystem.wHour,
        ImageInfo.TimestampSystem.wMinute,
        ImageInfo.TimestampSystem.wSecond,
        ImageInfo.TimestampSystem.wMilliseconds);
 
DWORD dwTotalBuffers = ImageInfo.dwImageBuffers;
DWORD dwUsedBuffers = ImageInfo.dwImageBuffersInUse;
}

Sample Program

uEyeTimestamp (C++)

© 2022 IDS Imaging Development Systems GmbH