![]() |
![]() |
|---|---|
USB 2.0 USB 3.x GigE |
USB 2.0 USB 3.x GigE |
Syntax
INT is_AutoParameter(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam)
Beschreibung
Mit der Funktion steuern Sie die automatischen Regelungen für die Belichtungszeit (auto exposure shutter), Verstärkung (auto gain) und Schwarzwert (black level). Als Modus für die Auto-Regelung können Sie zwischen Mittelwert (mean) und Peak-Modus (peak) wählen.
Beim Mittelwert wird das Kamerabild in seiner mittleren Helligkeit und Farbwiedergabe auf den vorgegebenen Sollwert geregelt. Beim Peak-Modus wird entsprechend des gewählten Modus ein Referenzanteil von Pixel im Bild angegeben, auf den geregelt wird (z. B. bei höchster Granularität von 0.01 … 20.00 %). Wenn Sie die Mittelwert-Regelung verwenden möchten, setzen Sie die Funktion is_SetAutoParameter() ein, für die Regelung über den Peak-Modus die Funktion is_AutoParameter().
Ü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 cbSizeOfParam angegeben.
Übergabeparameter
hCam |
Handle auf Kamera |
pParam |
Zeiger auf Funktionsparameter, der abhängig von nCommand unterschiedlich belegt ist. |
cbSizeOfParam |
Größe des Speicherbereichs in Byte, auf den pParam verweist. |
Inhalte der Struktur AES_CONFIGURATION
INT |
nMode |
Modus der Auto-Regelung: •1 = IS_AES_MODE_PEAK: Peak-Modus |
CHAR |
pConfiguration[1] |
Inhalte der Struktur AES_PEAK_CONFIGURATION
IS_RECT |
rectUserAOI |
Gibt die AOI an, die für die Auswertung verwendet werden soll. Wenn keine AOI verwendet werden soll, müssen alle Werte auf 0 gesetzt werden. Genauere Informationen zum AOI-Raster einzelner Kameramodelle finden Sie im zugehörigen Kapitel des Abschnitts Kamera- und Sensordaten. |
UINT |
nFrameSkip |
Setzt die Anzahl der bei der Regelung nicht auszuwertenden Bilder. |
UINT |
nHysteresis |
Setzt den Hysteresewert. Der Hysteresewert muss immer um ein Inkrement der eingestellten Granularität kleiner sein als der Zielwert der Auto-Regelung. Bei einem falschen Wert erfolgt eine automatische Anpassung. |
UINT |
nReference |
Setzt den Helligkeitsreferenzwert für die Auto-Regelung |
UINT |
nChannel |
Setzt die Kanäle, die für die Auswertung verwendet werden: •IS_AES_CHANNEL_MONO •IS_AES_CHANNEL_RED •IS_AES_CHANNEL_GREEN •IS_AES_CHANNEL_BLUE Bei einem monochromen Farbformat hat dieser Parameter keine Auswirkung. |
DOUBLE |
f64Maximum |
Setzt den maximalen Belichtungswert für die Regelung (0 = keine Begrenzung) |
DOUBLE |
f64Minimum |
Setzt den minimalen Belichtungswert für die Regelung (0 = keine Begrenzung) |
UINT |
nMode |
Setzt den Modus, der für die Auswertung verwendet wird: •IS_AES_CHANNEL_MODE_SELECTED_CHANNELS: regelt auf den Zielwert für den mit nChannel gewählten Farbkanal •IS_AES_CHANNEL_MODE_LEADING_CHANNEL: regelt auf den Zielwert für den dominierenden Farbkanal in der Sättigung. In diesem Modus wird der Parameter nChannel nicht berücksichtigt. •IS_AES_PEAK_MODE_ACCUMULATED_CHANNELS: regelt auf den Zielwert für die Summe aller Farbkanäle in der Sättigung. In diesem Modus wird der Parameter nChannel nicht berücksichtigt. |
UINT |
nGranularity |
Setzt die Granularität, die für die Auswertung verwendet wird: •IS_AES_GRANULARITY_PER_100 (in Prozent, d. h. mit Inkrement 1) •IS_AES_GRANULARITY_PER_1000 (in Promille, d. h. mit Inkrement 0.1) •IS_AES_GRANULARITY_PER_10000 (in 1/10-Promille, d. h. mit Inkrement 0.01) Die Granularität hat Auswirkung auf die folgenden Werte: •nHysteresis •nReference •rangeHysteresis (in der Struktur AES_PEAK_CONFIGURATION_RANGE) •rangeReference (in der Struktur AES_PEAK_CONFIGURATION_RANGE) Nachdem die Granularität gesetzt wurde, müssen die Werte für nHysteresis und nReference neu gesetzt werden. Bei Bedarf sollte der Wertebereich neu abgerufen werden (siehe Struktur AES_PEAK_CONFIGURATION_RANGE). |
Beispiele zu Granularität, Referenzwert und Hysterese
Referenz- und Hysteresewerte sollen mit einer Auflösung im Prozentbereich angegeben werden:
•nGranularity = IS_AES_GRANULARITY_PER_100
•nHysteresis = 1 (1 %)
•nReference = 10 (10 %)
Referenz- und Hysteresewerte sollen mit einer Auflösung im Promillebereich angegeben werden:
•nGranularity = IS_AES_GRANULARITY_PER_1000
•nHysteresis = 15 (1.5 %)
•nReference = 105 (10.5 %)
Referenz- und Hysteresewerte sollen mit einer Auflösung im 1/10-Promillebereich angegeben werden:
•nGranularity = IS_AES_GRANULARITY_PER_10000
•nHysteresis = 158 (1.58 %)
•nReference = 1054 (10.54 %)
Inhalte der Struktur AES_PEAK_CONFIGURATION_RANGE
IS_RANGE_S32 |
rangeFrameSkip |
Bereich für die Anzahl der nicht auszuwertenden Bilder |
IS_RANGE_S32 |
rangeHysteresis |
Bereich für den Hysteresewert |
IS_RANGE_S32 |
rangeReference |
Bereich für den Helligkeitsreferenzwert |
/* Receive configuration */
UINT nSizeOfParam = sizeof(AES_CONFIGURATION) - sizeof(CHAR) + sizeof(AES_PEAK_CONFIGURATION);
CHAR *pBuffer = new char[nSizeOfParam];
memset(pBuffer, 0, nSizeOf);
AES_CONFIGURATION *pAesConfiguration = (AES_CONFIGURATION*)pBuffer;
pAesConfiguration->nMode = IS_AES_MODE_PEAK;
AES_PEAK_CONFIGURATION *pPeakConfiguration = (AES_PEAK_CONFIGURATION*)pAesConfiguration->pConfiguration;
INT nRet = 0;
nRet = is_AutoParameter(hCam, IS_AES_CMD_GET_CONFIGURATION, pAesConfiguration , nSizeOfParam);
/* set configuration */
nRet = is_AutoParameter(hCam, IS_AES_CMD_SET_CONFIGURATION, pAesConfiguration , nSizeOfParam);
/* Enable */
INT nEnable = IS_AUTOPARAMETER_ENABLE;
is_AutoParameter(hCam, IS_AES_CMD_SET_ENABLE, &nEnable, sizeof(nEnable));
/* Disable*/
INT nEnable = IS_AUTOPARAMETER_DISABLE;
is_AutoParameter(hCam, IS_AES_CMD_SET_ENABLE, &nEnable, sizeof(nEnable));
/* Run Once*/
INT nEnable = IS_AUTOPARAMETER_ENABLE_RUNONCE;
is_AutoParameter(hCam, IS_AES_CMD_SET_ENABLE, &nEnable, sizeof(nEnable));
/* Get enable*/
INT nEnable;
is_AutoParameter(hCam, IS_AES_CMD_GET_ENABLE, &nEnable, sizeof(nEnable));
/* Receive configuration */
UINT nSizeOfParam = sizeof(AES_CONFIGURATION) - sizeof(CHAR) + sizeof(AES_PEAK_CONFIGURATION);
CHAR *pBuffer = new char[nSizeOfParam];
memset(pBuffer, 0, nSizeOf);
AES_CONFIGURATION *pAesConfiguration = (AES_CONFIGURATION*)pBuffer;
pAesConfiguration->nMode = IS_AES_MODE_PEAK;
AES_PEAK_CONFIGURATION *pPeakConfiguration = (AES_PEAK_CONFIGURATION*)pAesConfiguration->pConfiguration;
INT nRet = 0;
nRet = is_AutoParameter(hCam, IS_AES_CMD_GET_CONFIGURATION_DEFAULT, pAesConfiguration, nSizeOfParam);
/* Receive range */
UINT nSizeOfParam = sizeof(AES_CONFIGURATION) - sizeof(CHAR) + sizeof(AES_PEAK_CONFIGURATION_RANGE);
CHAR *pBuffer = new char[nSizeOfParam];
memset(pBuffer, 0, nSizeOf);
AES_CONFIGURATION *pAesConfiguration = (AES_CONFIGURATION*)pBuffer;
pAesConfiguration->nMode = IS_AES_MODE_PEAK;
AES_PEAK_CONFIGURATION_RANGE *pPeakConfigRange = (AES_PEAK_CONFIGURATION_RANGE*)pAesConfiguration->pConfiguration;
INT nRet = 0;
nRet = is_AutoParameter(hCam, IS_AES_CMD_GET_CONFIGURATION_RANGE, pAesConfiguration, nSizeOfParam);
INT nSupported = 0;
INT nRet = 0;
nRet = is_AutoParameter(hCam, IS_AES_CMD_GET_SUPPORTED_TYPES, &nSupported, sizeof(nSupported));
if (nSupported & IS_AES_MODE_PEAK)
{
…
}