Vignetting Correction#
이 기능은 pylon Viewer의 Vignetting Correction 기능과 함께 작동합니다.
기능 사용#
비네팅은 중앙에 비해 이미지 모서리가 어두워지는 현상을 의미합니다. 이는 디지털 이미징에서 흔히 발생하는 현상이며, 센서 가장자리의 픽셀에 충분한 빛이 도달하지 않을 때 발생합니다.
이는 예를 들어 센서 크기에 비해 이미지 서클이 너무 작거나, 센서 중앙에서처럼 광선이 직각으로 센서에 도달하지 않기 때문에 발생할 수 있습니다. 즉, 가장자리의 픽셀은 더 낮은 회색조 값을 갖게 됩니다.
이러한 아티팩트를 제거하려면 pylon Viewer를 사용하여 보정 데이터 세트를 생성해야 합니다. 다음 다이어그램은 이 프로세스를 보여줍니다.

1단계에서는 모든 픽셀의 보정값(CV)을 계산하여 카메라의 메모리에 저장합니다. 2단계에서는 VignettingCorrectionMode 매개변수가 활성화되면 비네팅 아티팩트가 즉시 제거됩니다. 아티팩트를 제거하기 위해 보정값과 원래 픽셀값(OV)을 곱하여 향상된 이미지(결과값, RV)를 얻습니다.
다음 항목 사용 VignettingCorrectionMode 매개변수를 사용하여 보정을 켜고 끌 수 있습니다. 이 매개변수는 pylon Viewer를 사용하여 Vignetting Correction 데이터를 생성한 후에만 사용할 수 있습니다.
카메라가 Vignetting Correction 데이터를 생성한 카메라와 유사한 사양을 가지고 있는 경우 다른 카메라의 Vignetting Correction 데이터를 사용할 수도 있습니다. 이렇게 하려면 다음 단계를따르십시오. 그런 다음 VignettingCorrectionLoad command.
정보
- 최상의 결과를 얻으려면 보정 데이터를 생성하기 전에 Light Source Preset 또는 Gamma 같은 모든 비선형 기능을 비활성화하십시오. 보정 데이터 생성이 완료된 후 다시 활성화할 수 있습니다.
- 컬러 카메라의 경우 보정 데이터를 생성하기 전에 Bayer Pixel Format을 선택하십시오. 보정 데이터를 생성한 후에는 원하는 Pixel Format을 선택할 수 있습니다.
- 비비네팅 보정을 수행할 때 생성된 기준 이미지의 모서리가 중앙에 비해 적당한 정도로만 어두워져 있어야 한다는 점이 중요합니다.
- 비비네팅은 사용된 렌즈, 조리개, 초점 거리의 영향을 받습니다. 렌즈, 조리개 또는 초점 거리를 변경하는 경우 새 Vignetting Correction 데이터를 생성해야 합니다.
-
Binning
BinningSelector파라미터가 다음으로 설정된 경우에만 Light Control 기능과 함께 사용할 수 있음을 명시했습니다.Sensor은 Vignetting Correction을 비활성화합니다.VignettingCorrectionMode매개변수가 다음으로 설정됩니다Off, 다음 중 하나가 발생할 때까지 다시 켤 수 없습니다.- Vignetting Correction을 수행했던 요인으로 binning factor를 재설정합니다.
- 새로운 factor로 Vignetting Correction을 다시 수행합니다.
샘플 코드#
ace 및 boost R 카메라#
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Turn vignetting correction on */
errRes = PylonDeviceFeatureFromString(hdev, "BslVignettingCorrectionMode", "On");
CHECK(errRes);
/* Load vignetting correction data */
errRes = PylonDeviceExecuteCommandFeature(hdev, "BslVignettingCorrectionLoad");
CHECK(errRes);
기타 카메라#
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Turn vignetting correction on */
errRes = PylonDeviceFeatureFromString(hdev, "VignettingCorrectionMode", "On");
CHECK(errRes);
/* Load vignetting correction data */
errRes = PylonDeviceExecuteCommandFeature(hdev, "VignettingCorrectionLoad");
CHECK(errRes);
pylon Viewer를 사용하여 파라미터를 손쉽게 설정할 수도 있습니다.