Aktivieren Sie JavaScript, um die Website anzuzeigen.

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_Measure(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam)

Beschreibung

Die Funktion ermöglicht das Messen der Schärfe in einem definierten Bildausschnitt des aktuellen Bilds. Um einen Wert für die Schärfe zu erhalten, werden die Kanten des Bilds ausgewertet. Die Schärfe kann nur als relativer Wert angegeben werden, da diese von den Kanten im Bild abhängig ist. Ein Bild mit wenig Kanten kann daher nie den Schärfewert erreichen wie ein Bild mit vielen Kanten.

Je höher der Wert ist, desto besser die Schärfe. Der Wert kann in Vergleichsmessungen verwendet werden, um Veränderungen in der Aufnahmesituation desselben Motivs zu entdecken, z.B. durch verstellte Objektive.

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

UINT

u32NumberAOI

ID der AOI

UINT

fSharpnessValue

Relativer Wert der Schärfe in der angegebenen AOI

IS_RECT

rcAOI

Position und Größe der AOI:

•s32X: X-Position

•s32Y: Y-Position

•s32Width: AOI-Breite

•s32Height: AOI-Höhe

CHAR*

pcImageMem

Startadresse des Bildspeichers, der für die Berechnung verwendet werden soll

•Ist pcImageMem gültig, wird der selektierte Speicher verwendet. Ist pcImageMem == NULL oder ungültig, wird der aktive Bildspeicher zur Berechnung verwendet.

Inhalte der Enumeration MEASURE_SHARPNESS_AOI_PRESETS

IS_MEASURE_SHARPNESS_AOI_PRESET_1

Voreingestellte AOI für die Schärfemessung (5 AOIs, jeweils in den vier Bildecken und in der Mitte, jede der 5 AOIs hat eine Größe von 1/3 x "Gesamtbildbreite" und 1/3 x "Gesamtbildhöhe")

Inhalte der Enumeration MEASURE_SHARPNESS_CALCULATION_ALGORITHM

IS_MEASURE_SHARPNESS_CALCULATION_ALGORITHM_TENENGRAD

Tenengrad - kontrastbasierter Schärfealgorithmus (Faltung)

IS_MEASURE_SHARPNESS_CALCULATION_ALGORITHM_MEAN_SCORE

Mean Score - kontrastbasierter Schärfealgorithmus (Mittelwert)

IS_MEASURE_SHARPNESS_CALCULATION_ALGORITHM_HISTOGRAM_VARIANCE

Varianz - statistikbasierter Schärfealgorithmus

IS_MEASURE_SHARPNESS_CALCULATION_ALGORITHM_SOBEL

Sobel - kontrastbasierter Schärfealgorithmus (Faltung) / Defaulteinstellung

Rückgabewert

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_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_SUPPORTED

Das verwendete Kameramodell unterstützt diese Funktion oder Einstellung nicht.

IS_SUCCESS

Funktion erfolgreich

Beispiel 1

INT nRet = IS_SUCCESS;
 
/* Create info object */
MEASURE_SHARPNESS_INFO measureSharpnessInfo;
 
/* Set values of AOI_0: The position and size of the AOI equals the whole image */
measureSharpnessInfo.u32NumberAOI   = 0;
measureSharpnessInfo.rcAOI.s32X     = 0;
measureSharpnessInfo.rcAOI.s32Y     = 0;
measureSharpnessInfo.rcAOI.s32Width = m_s32MaxImageWidth;
measureSharpnessInfo.rcAOI.s32Height = m_s32MaxImageHeight;
 
/* Set AOI_0 */
nRet = is_Measure(m_hCam, IS_MEASURE_CMD_SHARPNESS_AOI_SET, (void*)&measureSharpnessInfo, sizeof(measureSharpnessInfo));
 
/* Set values of AOI_1 */
measureSharpnessInfo.u32NumberAOI   = 1;
measureSharpnessInfo.rcAOI.s32X     = 50;
measureSharpnessInfo.rcAOI.s32Y     = 50;
measureSharpnessInfo.rcAOI.s32Width = 200;
measureSharpnessInfo.rcAOI.s32Height = 200;
 
/* Set AOI_1 */
nRet = is_Measure(m_hCam, IS_MEASURE_CMD_SHARPNESS_AOI_SET, (void*)&measureSharpnessInfo, sizeof(measureSharpnessInfo));

Beispiel 2

INT nRet = IS_SUCCESS;
 
/* Create algorithm info object */
MEASURE_SHARPNESS_CALCULATION_ALGORITHM measureSharpnessAlgorithm = IS_MEASURE_SHARPNESS_CALCULATION_ALGORITHM_HISTOGRAM_VARIANCE;
 
nRet = is_Measure(m_hCam, IS_MEASURE_CMD_SHARPNESS_CALCULATION_ALGORITHM_SET, (void*)&measureSharpnessAlgorithm, sizeof(measureSharpnessAlgorithm));

Beispiel 3

INT nRet = IS_SUCCESS;
 
/* Create info object */
MEASURE_SHARPNESS_INFO measureSharpnessInfo;
 
/* Get values of AOI_0 */
measureSharpnessInfo.u32NumberAOI = 0;
 
/* Get sharpness of active image memory */
measureSharpnessInfo.pcImageMem = NULL;
 
nRet = is_Measure(m_hCam, IS_MEASURE_CMD_SHARPNESS_AOI_INQUIRE, (void*)&measureSharpnessInfo, sizeof(measureSharpnessInfo));
if (nRet == IS_SUCCESS)
{
float fSharpness = measureSharpnessInfo.fSharpnessValue;
}

Beispiel 4

INT nRet = IS_SUCCESS;
 
/* Set preset */
UINT nPreset = IS_MEASURE_SHARPNESS_AOI_PRESET_1;
 
nRet = is_Measure(m_hCam, IS_MEASURE_CMD_SHARPNESS_AOI_SET_PRESET, (void*)&nPreset, sizeof(nPreset));