uEye Kamera-Handbuch Version 4.92
![]() |
![]() |
USB 2.0 USB 3.0 GigE |
USB 2.0 USB 3.0 GigE |
INT is_GetImageInfo (HIDS hCam, INT nImageBufferID, UEYEIMAGEINFO* pImageInfo, INT nImageInfoSize)
is_GetImageInfo()liefert zusätzliche Informationen zu aufgenommenen Bildern. Es werden ein Zeitstempel mit dem Zeitpunkt der Bildaufnahme sowie die Zustände der Ein-/Ausgänge der Kamera zu diesem Zeitpunkt zurückgegeben. Um Informationen zu einem gerade aufgenommenen Bild abzufragen, kann is_GetImageInfo() direkt nach dem Eintreffen des IS_FRAME-Events aufgerufen werden.
Verwendung bei GigE und USB 3 uEye Kameras
Die Struktur UEYEIMAGEINFO gibt den kamerainternen Zeitstempel u64TimestampDevice zurück, der den Zeitpunkt der Bildaufnahme mit einer Auflösung von 0,1 μs angibt. Als Zeitpunkt der Bildaufnahme ist definiert:
•Im getriggerten Modus der Eingang des Triggerereignisses (Hardware- oder Softwaretrigger) an der Kamera. Die Verzögerung zwischen dem Eingang des Triggersignals und dem Beginn der Belichtung ist sensorabhängig.
•Im freilaufenden Modus der Zeitpunkt, an dem der Sensor beginnt, Bilddaten auszugeben (siehe auch Vorgehensweise: Bildaufnahme). Ein Rolling-Shutter-Sensor gibt nach Belichtung der ersten Zeile Bilddaten aus. Ein Global-Shutter-Sensor gibt nach Belichtung aller Zeilen Bilddaten aus.
Die Struktur UEYETIME gibt einen auf die PC-Systemzeit synchronisierten Zeitstempel mit einer Auflösung von 1 ms zurück. Dieser Zeitstempel wird in 60-Sekunden-Intervallen neu synchronisiert. Dadurch können leichte Sprünge in der über UEYETIME übergebenen Zeit auftreten (durchschnittlich ca. 3 ms).
Zur genauen Bestimmung von Intervallen zwischen zwei Aufnahmen sollte daher der kamerainterne Zeitstempel u64TimestampDevice verwendet werden.
Verwendung bei USB 2 uEye Kameras, USB 3 uEye CP Rev. 1 und USB 3 uEye LE Kameras (ab Version 4.82)
Der Zeitstempel u64TimestampDevice gibt den Zeitpunkt an, zu dem die Übertragung der Bilddaten in den PC abgeschlossen ist.
Die Struktur UEYETIME gibt den Zeitstempel als synchronisierte PC-Systemzeit mit einer Auflösung von 1 ms zurück.
Für den normalen Triggermodus (ohne verzahntes Triggern) kann mit folgender Formel annähernd der Zeitstempel auf den Start der Bildaufnahme zurückgerechnet werden:
u64TimestampDevice -= static_cast<uint64_t>((frametime_inc * static_cast<double>(aoi.s32Height) * 10000000.0) + (exposure * 10000.0));
![]() |
Bildspeicher in einer Sequenz müssen mit is_LockSeqBuf() gelockt werden, damit die Zuordnung zwischen Bilddaten und Bildinformationen gewährleistet ist. Andernfalls kann es vorkommen, dass ein Bildspeicher mit neuen Bilddaten gefüllt wird. Die Bildinformationen stimmen in diesem Fall nicht mehr mit den Bilddaten überein. |
hCam |
Handle auf Kamera |
nImageBufferID |
ID des Bildspeichers, zu dem Informationen abgefragt werden sollen |
pImageInfo |
Zeiger auf Struktur vom Typ UEYEIMAGEINFO, in die die Informationen geschrieben werden sollen |
nImageInfoSize |
Größe der Struktur |
Inhalt der Struktur UEYEIMAGEINFO
DWORD |
dwFlags |
Interne Statusflags (derzeit nicht in Verwendung) |
BYTE |
byReserved1[4] |
Reserviert |
UINT64 |
u64TimestampDevice |
Interner Zeitstempel der Bildaufnahme (Tick Count der Kamera in Schritten von 0,1 μs) |
UEYETIME |
TimestampSystem |
Struktur mit Zeitstempel-Informationen im Format der PC-Systemzeit, siehe unten UEYETIME |
DWORD |
dwIoStatus |
Gibt bei GigE und USB 3 uEye Kameras die Zustände der digitalen Ein-/Ausgänge zum Zeitpunkt der Bildaufnahme zurück. •Bei digitalem Eingang (Trigger): Anliegendes Signal •Bei GPIO als Eingang: Anliegendes Signal •Bei GPIO als Ausgang: Gesetzter Pegel Bei anderen Kameras ist dwIoStatus leer. Siehe unten dwIOStatus |
WORD |
wAOIIndex |
Index des AOI (nur Sequenz-AOI-Modus bei UI-124x/UI-324x/UI-524x und UI-125x/UI-325x/UI-525x) |
WORD |
wAOICycle |
Auslesezyklus (nur Sequenz-AOI-Modus bei UI-124x/UI-324x/UI-524x und UI-125x/UI-325x/UI-525x) |
UINT64 |
u64FrameNumber |
Interne Bildnummer (nicht chronologisch) Hinweis: Verwenden Sie für eine korrekte Bildreihenfolge u64TimestampDevice. |
DWORD |
dwImageBuffers |
Anzahl der vorhandenen kamerainternen Bildspeicher |
DWORD |
dwImageBuffersInUse |
Anzahl der belegten kamerainternen Bildspeicher |
DWORD |
dwReserved3 |
Reserviert |
DWORD |
dwImageHeight |
Bildhöhe |
DWORD |
dwImageWidth |
Bildbreite |
DWORD |
dwHostProcessTime |
Nur im DIB-Modus: Zeit in µs, die für die Verabeitung des Bildes verwendet wurde (Zeitdifferenz zwischen der Ankunft der Bild-Rohdaten und dem Setzen des Frame-Events). Der Wert ist ein Anhaltspunkt für die maximal mögliche Bildrate. |
BYTE |
bySequencerIndex |
Sequencer-Set, das zur Aufnahme des Bildes über den Sequencer-Mode aktiv war. Siehe is_Sequencer() um mehr Infos über dieses Set zu erhalten. |
Statusflags in UEYEIMAGEINFO::dwIoStatus
Bitkombination |
Pegel digitaler Eingang |
Pegel GPIO 1 |
Pegel 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 |
Inhalt der Struktur UEYEIMAGEINFO::UEYETIME
WORD |
wYear |
Jahr des Zeitstempels |
WORD |
wMonth |
Monat des Zeitstempels |
WORD |
wDay |
Tag des Zeitstempels |
WORD |
wHour |
Stunde des Zeitstempels |
WORD |
wMinute |
Minute des Zeitstempels |
WORD |
wSecond |
Sekunde des Zeitstempels |
WORD |
wMilliseconds |
Millisekunde des Zeitstempels |
BYTE |
wReserved[10] |
Reserviert |
IS_INVALID_CAMERA_HANDLE |
Ungültiges Kamera-Handle |
IS_INVALID_PARAMETER |
Einer der übergebenen Parameter ist außerhalb des gültigen Bereichs, oder für diesen Sensor nicht unterstützt, bzw. in diesem Modus nicht zugänglich. Dies ist der Fall, wenn z.B.: •mehr Speicher alloziert wird, als die Struktur UEYEIMAGEINFO benötigt •nImageBufferID <= 0 •pImageInfo == NULL •nImageInfoSize <= 0 |
IS_NO_SUCCESS |
Allgemeine Fehlermeldung |
IS_SUCCESS |
Funktion erfolgreich |
UEYEIMAGEINFO ImageInfo;
// Zeitstempel der Kamera auslesen
INT nRet = is_GetImageInfo( hCam,
m_lMemoryId, &ImageInfo, sizeof(ImageInfo));
if (nRet == IS_SUCCESS)
{
unsigned long long u64TimestampDevice;
u64TimestampDevice = ImageInfo.u64TimestampDevice;
CString Str; // Zeitstempel in Systemzeit auslesen
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;
}
Beispielprogramme
•uEye Timestamp (C++)
Haben Sie Verbesserungshinweise? Senden Sie ein kurzes
Feedback zu diesem Kapitel.
Vielen Dank!
Bei technischen Fragen wenden Sie sich bitte an Ihren lokalen Händler oder nutzen Sie das Support-Formular auf unserer Internetseite.