Aktivieren Sie JavaScript, um die Website anzuzeigen.

IDS Software Suite 4.96.1

Navigation: C: Programmierung > Funktionsbeschreibungen > is_Focus

Fokuseinstellungen der uEye LE USB 3.1 Gen 1 AF

Blättern Zurück Top Vor Mehr
Windows_Logo
Linux_Logo

uEye LE USB 3.1 Gen 1 AF

uEye LE USB 3.1 Gen 1 AF

Syntax

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

Beschreibung

Bei der uEye LE USB 3.1 Gen 1 AF ist das Fokus-Messfenster eine AOI, die verschoben, vergrößert oder verkleinert werden kann (siehe uEye Cockpit: Eigenschaften - Fokus).

hint_info

Kommt es zu einem Kamera-Reconnect muss die Fokus-AOI wieder neu gesetzt werden.

Ü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 Struktur AUTOFOCUS_AOI

UINT

uNumberAOI

Nummer des Fokus-Messfensters

IS_RECT

rcAOI

Definiert die linke obere Ecke (s32X, s32Y) sowie die Breite (s23Width) und Höhe (s32Height) des Fokus-Messfensters.

AUTOFOCUS_AOI_WEIGHT

eWeight

Definiert die Gewichtung der Zone:

•AUTOFOCUS_AOI_WEIGHT_MIDDLE

Inhalt der Struktur IS_SIZE_2D

INT

s32Width

Breite der AOI

INT

s32Height

Höhe der AOI

Inhalt der Struktur AUTOFOCUS_LIMIT

UINT

uMin

Definiert die untere Grenze des Fokussuchbereichs für den Peak-Search-Algorithmus.

UINT

uMax

Definiert die obere Grenze des Fokussuchbereichs für den Peak-Search-Algorithmus.

Inhalt der Struktur AUTOFOCUS_CALLBACK

IS_AUTOFOCUS_CALLBACK_FUNC

pfFunc

•Fokuswert vom Typ UINT

•Schärfewert vom Typ INT

void*

pContext

•pContext vom Typ void*

Rückgabewert

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

Die Fokus-AOI ist ungültig oder passt nicht in die Image-AOI.

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_SUCCESS

Allgemeine Fehlermeldung

IS_NOT_SUPPORTED

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

IS_SUCCESS

Funktion erfolgreich

Beispiel 1

UINT supported_sharpness_calculation_algorithm;
INT nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_SUPPORTED_SHARPNESS_CALCULATION_ALGORITHM, &supported_sharpness_calculation_algorithm, sizeof(supported_sharpness_calculation_algorithm));
 
if (IS_SUCCESS == nRet)
{
  UINT sharpness_calculation_algorithm;
  if (AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM_MEAN_SCORE == (supported_sharpness_calculation_algorithm & AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM_MEAN_SCORE))
  {
      sharpness_calculation_algorithm = AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM_MEAN_SCORE;
  }
  else
  {
      is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM_DEFAULT, &sharpness_calculation_algorithm, sizeof(sharpness_calculation_algorithm));
  }
 
  nRet = is_Focus(m_hCam, FOC_CMD_SET_AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM, &sharpness_calculation_algorithm, sizeof(sharpness_calculation_algorithm));
  if (IS_SUCCESS == nRet)
  {
      sharpness_calculation_algorithm = 0;
      nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM, &sharpness_calculation_algorithm, sizeof(sharpness_calculation_algorithm));
 
      if (IS_SUCCESS == nRet)
      {
          // print sharpness_calculation_algorithm
          ...
      }
  }
}

Beispiel 2

UINT supported_search_peak_algorithm;
INT nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_ONCE_SUPPORTED_PEAK_SEARCH_ALGORITHM, &supported_search_peak_algorithm, sizeof(supported_search_peak_algorithm));
 
if (IS_SUCCESS == nRet)
{
  UINT search_peak_algorithm;
  if (AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM_HILL_CLIMBING == (supported_search_peak_algorithm & AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM_HILL_CLIMBING_SEARCH))
  {
      search_peak_algorithm = AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM_HILL_CLIMBING_SEARCH;
  }
  else
  {
      is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM_DEFAULT, &search_peak_algorithm, sizeof(search_peak_algorithm));
  }
 
  nRet = is_Focus(m_hCam, FOC_CMD_SET_AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM, &search_peak_algorithm, sizeof(search_peak_algorithm));
  if (IS_SUCCESS == nRet)
  {
      search_peak_algorithm = 0;
      nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM, &search_peak_algorithm, sizeof(search_peak_algorithm));
 
      if (IS_SUCCESS == nRet)
      {
          // print search_peak_algorithm
          ...
      }
  }
}

Beispiel 3

UINT number_of_supported_focus_aois;
INT nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_NUMBER_OF_SUPPORTED_AOIS, &number_of_supported_focus_aois, sizeof(number_of_supported_focus_aois));
 
if ((IS_SUCCESS == nRet) && (0 < number_of_supported_focus_aois))
{
  IS_SIZE_2D focus_aoi_min_size;
  nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_AOI_SIZE_MIN, &focus_aoi_min_size, sizeof(focus_aoi_min_size));
 
  AUTOFOCUS_AOI focus_aoi;
  focus_aoi.uNumberAOI = 1;
  focus_aoi.rcAOI.s32X = 200;
  focus_aoi.rcAOI.s32Y = 200;
  focus_aoi.rcAOI.s32Width = focus_aoi_min_size.s32Width;
  focus_aoi.rcAOI.s32Height = focus_aoi_min_size.s32Height;
  focus_aoi.eWeight = AUTOFOCUS_AOI_WEIGHT_MIDDLE;
 
  nRet = is_Focus(m_hCam, FOC_CMD_SET_AUTOFOCUS_AOI, &focus_aoi, sizeof(focus_aoi));
 
  if (IS_SUCCESS == nRet)
  {
      memset(&focus_aoi, 0, sizeof(focus_aoi));
      nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_AOI, &focus_aoi, sizeof(focus_aoi));
 
      if (IS_SUCCESS == nRet)
      {
          // print focus_aoi
          ...
      }
  }
 
  AUTOFOCUS_AOI_PRESET aoi_preset = AUTOFOCUS_AOI_PRESET_CENTER;
  nRet = is_Focus(m_hCam, FOC_CMD_SET_AUTOFOCUS_AOI_PRESET, &aoi_preset, sizeof(aoi_preset));
 
  if (IS_SUCCESS == nRet)
  {
      AUTOFOCUS_AOI focus_aoi_preset;
      nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_AOI, &focus_aoi_preset, sizeof(focus_aoi_preset));
 
      if (IS_SUCCESS == nRet)
      {
          // print focus_aoi_preset
          ...
      }
  }
}

Beispiel 4

AUTOFOCUS_LIMIT autofocus_limit_default;
INT nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_LIMIT_DEFAULT, &autofocus_limit_default, sizeof(autofocus_limit_default));
 
if (IS_SUCCESS == nRet)
{
  AUTOFOCUS_LIMIT autofocus_limit;
  autofocus_limit.sMin = -1;
  autofocus_limit.sMax = 500;
 
  nRet = is_Focus(m_hCam, FOC_CMD_SET_AUTOFOCUS_LIMIT, &autofocus_limit, sizeof(autofocus_limit));
   
  if (IS_SUCCESS == nRet)
  {
      autofocus_limit.sMin = 0;
      autofocus_limit.sMax = 0;
 
      nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_LIMIT, &autofocus_limit, sizeof(autofocus_limit));
 
      if (IS_SUCCESS == nRet)
      {
          // print autofocus_limit
          ...
      }
  }
}

Beispiel 5

WORD autofocus_lens_response_time_default;
INT nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_LENS_RESPONSE_TIME_DEFAULT, &autofocus_lens_response_time_default, sizeof(autofocus_lens_response_time_default));
 
if (IS_SUCCESS == nRet)
{
  nRet = is_Focus(m_hCam, FOC_CMD_SET_AUTOFOCUS_LENS_RESPONSE_TIME, &autofocus_lens_response_time_default, sizeof(autofocus_lens_response_time_default));
   
  if (IS_SUCCESS == nRet)
  {
      WORD autofocus_lens_response_time;
      nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_LENS_RESPONSE_TIME, &autofocus_lens_response_time, sizeof(autofocus_lens_response_time));
 
      if (IS_SUCCESS == nRet)
      {
          // print autofocus_lens_response_time
          ...
      }
  }
}

Beispiel 6

WORD autofocus_hysteresis_default;
INT nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_HYSTERESIS_DEFAULT, &autofocus_hysteresis_default, sizeof(autofocus_hysteresis_default));
 
if (IS_SUCCESS == nRet)
{
  nRet = is_Focus(m_hCam, FOC_CMD_SET_AUTOFOCUS_HYSTERESIS, &autofocus_hysteresis_default, sizeof(autofocus_hysteresis_default));
   
  if (IS_SUCCESS == nRet)
  {
      WORD autofocus_hysteresis;
      nRet = is_Focus(m_hCam, FOC_CMD_GET_AUTOFOCUS_HYSTERESIS, &autofocus_hysteresis, sizeof(autofocus_hysteresis));
 
      if (IS_SUCCESS == nRet)
      {
          // print autofocus_hysteresis
          ...
      }
  }
}

Beispiel 7

// callback function
void print_focus_sharpness(UINT focus, INT sharpness, void*)
{
  // print focus, sharpness
  ...
}
 
AUTOFOCUS_CALLBACK autofocus_callback;
autofocus_callback.pfFunc = print_focus_sharpness;
autofocus_callback.pContext = NULL;
 
INT nRet = is_Focus(m_hCam, FOC_CMD_SET_AUTOFOCUS_CALLBACK, &autofocus_callback, sizeof(autofocus_callback));
 
if (IS_SUCCESS == nRet)
{
  is_Focus(m_hCam, FOC_CMD_SET_ENABLE_AUTOFOCUS_ONCE, NULL, 0);
}