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

1단계에서는 모든 픽셀에 대한 보정 값(CV)이 계산되어 카메라의 memory에 저장됩니다. 2단계에서는 VignettingCorrectionMode 파라미터가 활성화된 경우 비네팅 아티팩트가 즉시 제거됩니다. 아티팩트를 제거하기 위해 보정 값은 원래 픽셀 값(OV)과 곱해져 개선된 이미지(결과 값, RV)를 얻게 됩니다.
파라미터를 사용하여 VignettingCorrectionMode 보정을 켜고 끌 수 있습니다. 이 파라미터는 pylon Viewer를 사용하여 Vignetting Correction 데이터를 생성한 후에만 사용할 수 있습니다.
Vignetting Correction 데이터를 생성한 카메라와 사양이 유사한 다른 카메라의 Vignetting Correction 데이터를 사용할 수도 있습니다. 그렇게 하려면 다음 단계를따르십시오. 그런 다음 VignettingCorrectionLoad 명령입니다.
정보
- 최상의 결과를 얻으려면 보정 데이터를 생성하기 전에 Light Source Preset이나 Gamma와 같은 모든 비선형 기능을 비활성화하십시오. 그 후에는 다시 활성화할 수 있습니다.
- 컬러 카메라의 경우 보정 데이터를 생성하기 전에 Bayer Pixel Format을 선택하십시오. 보정 데이터를 생성한 후에는 원하는 Pixel Format을 선택할 수 있습니다.
- Vignetting Correction을 수행할 때 생성된 기준 이미지는 중앙에 비해 모서리가 적당히 어두워진 상태여야 합니다.
- 비네팅은 사용된 렌즈, 조리개, 초점 거리의 영향을 받습니다. 렌즈, 조리개, 초점 거리를 변경하는 경우 새로운 Vignetting Correction 데이터 세트를 생성해야 합니다.
-
Binning
BinningSelector로 설정된 경우Sensor팩터를 변경하면 Vignetting Correction이 비활성화됩니다. Vignetting CorrectionVignettingCorrectionMode매개변수가 다음과 같이 설정됩니다Off, 그리고 다음 중 하나가 발생할 때까지 다시 켤 수 없습니다:- Vignetting Correction을 수행했던 팩터로 Binning Factor를 재설정합니다.
- 새 팩터로 Vignetting Correction을 다시 수행합니다.
샘플 코드#
ace 2 및 boost R Cameras#
/* 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를 사용하여 파라미터를 손쉽게 설정할 수 있습니다.