uEye Kamera-Handbuch Version 4.92
![]() |
![]() |
USB 2.0 USB 3.0 GigE |
USB 2.0 USB 3.0 GigE |
Syntax
INT is_AOI (HIDS hCam, UINT nCommand, void* pParam, UINT nSizeOfParam)
Beschreibung
Mit is_AOI() kann die Größe und Position eines Bildausschnitts (area of interest - AOI) gesetzt werden. Die AOI ist immer bezogen auf den Sensor. Mögliche AOI sind:
•Image AOI – Darstellung eines Teilbildes
•Auto Brightness AOI – Referenz-Bildausschnitt für die automatische Helligkeitssteuerung
•Auto Whitebalance AOI – Referenz-Bildausschnitt für den automatischen Weißabgleich
Bei Image AOIs gelten sensorabhängige Einschränkungen für die Schrittweiten von Position und Größe. Die Werte für Position und Größe der AOI müssen ganzzahlige Vielfache der erlaubten Schrittweiten sein. Genauere Informationen zum AOI-Raster einzelner Kameramodelle finden Sie im zugehörigen Kapitel des Abschnitts Kamera- und Sensordaten.
![]() |
Diese Funktion wird von folgenden Kameramodellen nicht unterstützt: •UI-3013XC •UI-1007XS |
Über den Übergabeparameter nCommand wird dabei der Funktionsmodus gewählt. Der Übergabeparameter pParam ist abhängig vom Funktionsmodus unterschiedlich belegt; bei Funktionen zum Setzen oder Rücklesen eines Wertes enthält pParam einen Zeiger auf eine Variable vom Typ UINT. Die Größe des Speicherbereichs, auf den pParam verweist, wird im Übergabeparameter nSizeOfParam angegeben.
AOI für die automatische Bildregelung
Die AOI für die automatische Helligkeitsregelung (AES/AGC) und den automatischen Weißabgleich (AWB) ist standardmäßig so groß wie die aktuelle Bildgröße (d. h. die Image AOI).
Nach Änderungen der Bildgeometrie (durch Neusetzen einer Image AOI, Binning oder Subsampling) werden die AOI für die automatische Bildregelung immer auf den Wert der eingestellten Image AOI zurückgesetzt. Das bedeutet, dass die Auto Brightness/Auto White Balance AOI eventuell neu gesetzt werden müssen.
Schnelles Verschieben von AOIs
Über das Kommando IS_AOI_IMAGE_SET_POS_FAST kann die Position von Bildausschnitten sehr schnell verändert werden. Der Zeitbedarf für die Ausführung dieses Kommandos liegt im Bereich weniger Millisekunden. Bei der Verwendung dieses Kommandos sind folgende Besonderheiten zu beachten:
•Das Kommando wird nicht von allen Kameramodellen unterstützt. Über das Kommando IS_AOI_IMAGE_GET_POS_FAST_SUPPORTED kann abgefragt werden, ob ein Sensor das schnelle Verschieben unterstützt.
•Die Hotpixelkorrektur muss abgeschaltet werden (siehe is_HotPixel()).
•Der Bildeinzug wird beim schnellen Verschieben der AOI nicht angehalten. Dadurch können nach dem Aufruf des Kommandos noch weitere Bilder mit der alten AOI-Position übertragen werden, wenn diese sich noch im Treiberpuffer befinden.
Ändern der Bildgröße
Wenn Sie die Größe der AOI ändern, achten Sie darauf, dass der aktuelle Bildspeicher ausreichend groß ist. Andernfalls müssen Sie den Bildspeicher neu anlegen (siehe is_AllocImageMem()).
Eine Änderung der Bildgröße beeinflusst die Wertebereiche von Bildwiederholrate und Belichtungszeit. Es wird empfohlen, nach dem Ausführen von is_AOI() folgende Funktionen aufzurufen, um definierte Kameraeinstellungen zu erhalten:
•Wenn die Blitzfunktion verwendet wird: is_IO()
|
Hinweis zur AOI in Verbindung mit hohen Bildraten Bei sehr kleinen AOI und damit hoher Bildrate (Framerate) und maximal eingestellter möglicher Framerate kann die USB Kamera unter Umständen im freilaufenden Modus (freerun) nur halbe Framerate versenden. Dies ist ein Zeichen für eine kamerainterne Überbelastung. In diesem Falle wird empfohlen die Framerate nur auf maximal 98 % zu stellen. |
Weitere AOI-Funktionen
Bei einigen uEye Kameramodellen können weitere spezielle Formen der AOI-Funktion gesetzt werden:
•IDS Linescan ("AOI-Merge-Modus") konfigurieren
Übergabeparameter
hCam |
Handle auf Kamera |
||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||
pParam |
Zeiger auf Funktionsparameter, der abhängig von nCommand unterschiedlich belegt ist. |
||||||||||||||||||||||||||||||||||||||||||
nSizeOfParam |
Größe des Speicherbereichs in Byte, auf den pParam verweist. |
||||||||||||||||||||||||||||||||||||||||||
INT |
s32X |
X-Position der AOI |
INT |
s32Y |
Y-Position der AOI |
INT |
s32Width |
Breite der AOI |
INT |
s32Height |
Höhe der AOI |
Inhalt der Struktur IS_POINT_2D
INT |
s32X |
X-Position der AOI |
INT |
s32Y |
Y-Position der AOI |
Inhalt der Struktur IS_SIZE_2D
INT |
s32Width |
Breite der AOI |
INT |
s32Height |
Höhe der AOI |
Rückgabewerte
IS_BAD_STRUCTURE_SIZE |
Eine interne Struktur hat die falsche Größe. |
IS_CANT_ADD_TO_SEQUENCE |
Der Bildspeicher befindet sich bereits in der Sequenz und kann nicht doppelt hinzugefügt werden. |
IS_CANT_COMMUNICATE_WITH_DRIVER |
Kommunikation mit dem Kameratreiber schlug fehl, weil kein Treiber geladen ist. |
IS_CANT_OPEN_DEVICE |
Ein Versuch die Kamera zu öffnen schlug fehl (Kamera nicht vorhanden oder Fehler beim Initialisieren). |
IS_CAPTURE_RUNNING |
Es läuft bereits eine Aufnahme, die zuerst beendet werden muss. |
IS_DR_CANNOT_CREATE_SURFACE |
Bild- oder Overlay-Surface konnten nicht angelegt werden. |
IS_DR_CANNOT_CREATE_TEXTURE |
Die Textur konnte nicht angelegt werden. |
IS_DR_CANNOT_CREATE_VERTEX_BUFFER |
Der Vertex-Puffer konnte nicht angelegt werden. |
IS_DR_DEVICE_OUT_OF_MEMORY |
Nicht genügend Grafikspeicher verfügbar. |
IS_DR_LIBRARY_NOT_FOUND |
Die DirectRenderer-Bibliothek konnte nicht gefunden werden. |
IS_INVALID_BUFFER_SIZE |
Der Bildspeicher hat die falsche Größe um das Bild im gewünschten Format aufzunehmen. |
IS_INVALID_CAMERA_TYPE |
Kameratyp der .ini-Datei stimmt nicht mit dem aktuellen Kameramodell überein. |
IS_INVALID_CAPTURE_MODE |
Die Funktion kann im aktuellen Betriebsmodus der Kamera (Freilaufend, Trigger oder Standby) nicht ausgeführt werden. |
IS_INVALID_CAMERA_HANDLE |
Ungültiges Kamera-Handle |
IS_INVALID_MEMORY_POINTER |
Ungültiger Zeiger oder ungültige Speicher-ID |
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. |
IS_IO_REQUEST_FAILED |
Eine IO Anforderung des uEye Treibers schlug fehl. Eventuell passen die Versionen der Dateien ueye_api.dll (API) und ueye_usb.sys bzw. ueye_eth.sys (Treiber) nicht zusammen. |
IS_NO_ACTIVE_IMG_MEM |
Kein aktivierter Bildspeicher vorhanden. Der Speicher muss mit der Funktion is_SetImageMem() aktiviert werden, oder es muss mit der Funktion is_AddToSequence() eine Sequenz aufgebaut werden. |
IS_NO_SUCCESS |
Allgemeine Fehlermeldung |
IS_NOT_CALIBRATED |
Die Kamera enthält keine Kalibrierungsdaten. |
IS_NOT_SUPPORTED |
Das verwendete Kameramodell unterstützt diese Funktion oder Einstellung nicht. |
IS_OUT_OF_MEMORY |
Es konnte kein Speicher alloziert werden. |
IS_SEQUENCE_BUF_ALREADY_LOCKED |
Der Speicher konnte nicht gelockt werden. Der Zeiger auf den Buffer ist ungültig. |
IS_SUCCESS |
Funktion erfolgreich |
IS_TIMED_OUT |
Ein Timeout trat auf. Eine Bildaufnahme konnte nicht in der vorgeschriebenen Zeit beendet werden. |
IS_TRIGGER_ACTIVATED |
Die Funktion ist nicht möglich, da die Kamera auf ein Triggersignal wartet. |
Verwandte Funktionen
// Setzt die Position und Größe des Bildes über ein Objekt vom Typ IS_RECT.
IS_RECT rectAOI;
rectAOI.s32X = 100;
rectAOI.s32Y = 100;
rectAOI.s32Width = 200;
rectAOI.s32Height = 100;
INT nRet = is_AOI( hCam, IS_AOI_IMAGE_SET_AOI, (void*)&rectAOI, sizeof(rectAOI));
// Gibt die Position und Größe der AOI über ein Objekt vom Typ IS_RECT zurück.
IS_RECT rectAOI;
INT nRet = is_AOI(hCam, IS_AOI_IMAGE_GET_AOI, (void*)&rectAOI, sizeof(rectAOI));
if (nRet == IS_SUCCESS)
{
INT x = rectAOI.s32X;
INT y = rectAOI.s32Y;
INT width = rectAOI.s32Width;
INT height = rectAOI.s32Height;
}
// Gibt über ein UINT Objekt zurück, ob bei der X-Position IS_AOI_IMAGE_POS_ABSOLUTE gesetzt ist.
UINT nAbsPos = 0;
INT nRet = is_AOI(hCam, IS_AOI_IMAGE_GET_POS_X_ABS, (void*)&nAbsPos , sizeof(nAbsPos ));
if (nRet == IS_SUCCESS)
{
if (nAbsPos == IS_AOI_IMAGE_POS_ABSOLUTE)
{
// gesetzt
}
else if (nAbsPos == 0)
{
// nicht gesetzt
}
}
// Abfragen, ob das schnelle Verschieben der AOI unterstützt wird
unsigned int fastAOIsupport = 0;
int nRet = is_AOI(m_hCam, IS_AOI_IMAGE_GET_POS_FAST_SUPPORTED, (void*)&fastAOIsupport, sizeof(fastAOIsupport));
Beispiele für das Setzen der AOI-Position im Speicher
x = 100
y = 100

Abb. 208: AOI ohne absolute Positionierung im Speicher
x = 100 | IS_AOI_IMAGE_POS_ABSOLUTE
y = 100

Abb. 209: AOI mit absoluter x-Positionierung im Speicher
x = 100 | IS_AOI_IMAGE_POS_ABSOLUTE
y = 100 | IS_AOI_IMAGE_POS_ABSOLUTE

Abb. 210: AOI mit absoluter x- und y-Positionierung im Speicher
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.