Aktivieren Sie JavaScript, um die Website anzuzeigen.

IDS Software Suite 4.95.1

Windows_Logo
Linux_Logo

USB 2.0

USB 3.x

GigE

USB 2.0

USB 3.x

GigE

Syntax

INT is_ImageFormat (HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam)

Beschreibung

Mit is_ImageFormat() kann eine Liste möglicher Bildgrößen (Profile) abgefragt und ein neues Profil gesetzt werden. Dies ist hilfreich bei Sensoren, die keine freie Wahl des Bildausschnitts (area of interest) oder Bildformate unterstützen. Der Treiber stellt die gewählte Bildgröße über die Funktionen AOI, Binning/Subsampling oder Skalierer so ein, dass die bestmögliche Bildqualität erreicht wird. Hierbei ist das Ziel eine möglichst geringe Datenrate bei einem maximalen Sichtbereich ("field of view") zu erzielen. Für eine Liste unterstützter Bildprofile siehe Kamera- und Sensordaten.

Ü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.

Ü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.

Inhalt der Liste IMAGE_FORMAT_LIST

UINT

nSizeOfListEntry

Muss mit der Größe eines Listenelements in Byte vorbelegt werden

UINT

nNumListElements

Muss mit der Anzahl von Listenelementen vorbelegt werden (aus IMGFRMT_CMD_GET_NUM_ENTRIES)

UINT

nReserved[4]

Reserviert

IMAGE_FORMAT_INFO

FormatInfo[0]

Erstes Listenelement.

Nach dem Füllen der Liste durch IMGFRMT_CMD_GET_LIST enthält diese weitere Elemente FormatInfo[1]…FormatInfo[nNumListElements-1].

Inhalt des Listenelements IMAGE_FORMAT_INFO

INT

nFormatID

Format-ID des angegebenen Profils

UINT

nWidth

Breite des Bildausschnitts

UINT

nHeight

Höhe des Bildausschnitts

INT

nX0

Startpunkt des Bildausschnitts (X)

INT

nY0

Startpunkt des Bildausschnitts (Y)

UINT

nSupportedCaptureModes

In diesem Format unterstützte Bildaufnahmemodi (siehe Tabelle unten)

UINT

nBinningMode

Verwendeter Binning-Modus

UINT

nSubsamplingMode

Verwendeter Subsampling-Modus

IS_CHAR

strFormatName[64]

Beschreibung des Formats

double

dSensorScalerFactor

Verwendeter Skalierungsfaktor bei Sensoren mit Scaler-Funktion.

UINT

nReserved[22]

Reserviert

Mögliche Werte für CAPTUREMODE

CAPTMODE_SINGLE

Freilaufende Bildaufnahme, Einzelbild (Freerun Snap)

CAPTMODE_FREERUN

Freilaufende Bildaufnahme, kontinuierlich (Freerun Live)

CAPTMODE_TRIGGER_SOFT_SINGLE

Softwaregetriggerte Bildaufnahme, Einzelbild

CAPTMODE_TRIGGER_SOFT_CONTINUOUS

Softwaregetriggerte Bildaufnahme, kontinuierlich

CAPTMODE_TRIGGER_HW_SINGLE

Hardwaregetriggerte Bildaufnahme, Einzelbild

CAPTMODE_TRIGGER_HW_CONTINUOUS

Hardwaregetriggerte Bildaufnahme, kontinuierlich

Für weitere Informationen zu den Bildaufnahmemodi siehe auch Kapitel Grundlagen: Betriebsmodi.

Rückgabewert

IS_CANT_ADD_TO_SEQUENCE

Der Bildspeicher befindet sich bereits in der Sequenz und kann nicht doppelt hinzugefügt werden.

IS_BAD_STRUCTURE_SIZE

Eine interne Struktur hat die falsche Größe.

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_MODE

Kamera im Standby, Funktion nicht erlaubt

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_INVALID_PIXEL_CLOCK

Diese Einstellung ist bei dem aktuell eingestellten Pixeltakt nicht möglich.

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_NULL_POINTER

Ungültiges Array

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

•is_AOI()

•is_SetBinning()

•is_SetSubSampling()

Beispiel

HIDS hCam;
char strCamFileName[256];
int nRet;
 
// Anzahl verfügbarer Formate und Größe der Liste abfragen
UINT count;
UINT bytesNeeded = sizeof(IMAGE_FORMAT_LIST);
nRet = is_ImageFormat(hCam, IMGFRMT_CMD_GET_NUM_ENTRIES, &count, sizeof(count));
bytesNeeded += (count - 1) * sizeof(IMAGE_FORMAT_INFO);
void* ptr = malloc(bytesNeeded);
 
// Liste anlegen und füllen
IMAGE_FORMAT_LIST* pformatList = (IMAGE_FORMAT_LIST*) ptr;
pformatList->nSizeOfListEntry = sizeof(IMAGE_FORMAT_INFO);
pformatList->nNumListElements = count;
nRet = is_ImageFormat(hCam, IMGFRMT_CMD_GET_LIST, pformatList, bytesNeeded);
 
// Bildspeicher anlegen
char* pMem = NULL;
int memID = 0;
 
// Jedes Format nacheinander setzen und ein Bild aufnehmen
IMAGE_FORMAT_INFO formatInfo;
for (int i = 0; i < count; i++)
{
    formatInfo = pformatList->FormatInfo[i];
    int width = formatInfo.nWidth;
    int height = formatInfo.nHeight;
 
    // Bildspeicher für aktuelles Format anlegen, Format setzen
    nRet = is_AllocImageMem(hCam, width, height, 24, &pMem, &memID);
    nRet = is_SetImageMem(hCam, pMem, memID);  
    nRet = is_ImageFormat(hCam, IMGFRMT_CMD_SET_FORMAT, &formatInfo.nFormatID, sizeof(formatInfo.nFormatID));
 
    // Bild aufnehmen
    nRet = is_FreezeVideo(hCam, IS_WAIT);
}