콘텐츠로 건너뛰기
STAGING SERVER
DEVELOPMENT SERVER

Digital Shift#

Digital Shift 카메라 기능을 사용하면 이미지의 픽셀 값을 곱할 수 있습니다.

이를 통해 이미지의 밝기가 증가합니다. 카메라가 digital shift 기능을 지원하지 않는 경우 Gain 기능을 사용하여 비슷한 효과를 얻을 수 있습니다.

기능 사용법#

작동 원리#

digital shift 팩터를 n으로 설정하면 모든 픽셀 값에 대해 n만큼 왼쪽으로 논리적 시프트(logical left shift)가 수행됩니다. 이로 인해 모든 픽셀 값에 2n이 곱해지는 효과가 발생합니다.

결과 픽셀 값이 현재 Pixel Format에서 가능한 최대값(예: 12비트 Pixel Format의 경우 4 095)보다 크면, 해당 값은 최대값으로 설정됩니다.

자세한 내용은 아래의 예시를 참조하십시오.

Digital Shift 구성#

digital shift 팩터를 설정하려면 원하는 값을 입력하십시오. DigitalShift 파라미터.

기본적으로 이 파라미터는 0으로 설정되어 있어 digital shift가 비활성화되어 있습니다.

예제#

예 1: 1만큼의 Digital Shift, 12비트 이미지 데이터#

12비트 Pixel Format을 사용하는 카메라에서 digital shift 팩터를 1로 입력했다고 가정해 보겠습니다. 이 경우 다음과 같은 효과가 나타납니다.

Digital Shift by 1, 12비트 이미지 데이터 출력

  • 각 12비트 이미지 데이터 워드의 최하위 비트(least significant bit)가 0으로 설정됩니다.
  • 픽셀 값에 21= 2가 곱해집니다.
  • 최하위 비트가 0으로 설정되므로 카메라는 2, 4, 6, 8, 10 등 짝수 픽셀 값만 전송합니다.

예 2: 2만큼의 Digital Shift, 12비트 이미지 데이터#

12비트 Pixel Format을 사용하는 카메라에서 digital shift 팩터를 2로 입력했다고 가정해 보겠습니다. 이 경우 다음과 같은 효과가 나타납니다.

Digital Shift by 2, 12비트 이미지 데이터 출력

  • 각 12비트 이미지 데이터 워드의 하위 2개 최하위 비트가 0으로 설정됩니다.
  • 픽셀 값에 22= 4가 곱해집니다.
  • 두 개의 최하위 비트가 0으로 설정되므로 카메라는 4, 8, 12, 16, 20 등 네 번째 픽셀 값마다 하나씩 전송합니다.

예 3: 2만큼의 Digital Shift, 8비트 이미지 데이터#

카메라의 최대 픽셀 비트 심도(maximum pixel bit depth)가 12비트이지만 현재 8비트 Pixel Format을 사용하고 있다고 가정해 보겠습니다.

이 경우 카메라는 먼저 12비트 이미지 데이터에 대해 digital shift 계산을 수행합니다. 그런 다음 하위 4개의 최하위 비트를 버리고 상위 8개의 최상위 비트를 전송합니다.

Digital Shift by 2, 8비트 이미지 데이터 출력

정보

다음 카메라 모델에서는 8비트 Pixel Format이 설정된 경우 최대 픽셀 비트 심도와 관계없이 10비트 이미지 데이터에 대해 digital shift가 수행됩니다: acA720-290gm/gc, acA1440-73gm/gc, acA1920-40gm/gc, acA1920-50gm/gc, acA1440-220um/uc, acA1920-40um/uc, acA1920-155um/uc, acA2040-120um/uc, acA2440-75um/uc, acA4096-40um/uc, acA4112-30um/uc.

예 4: 1만큼의 Digital Shift, 12비트 이미지 데이터, 높은 값#

카메라가 12비트 Pixel Format을 사용하고 있다고 가정해 보겠습니다. 또한 원래 픽셀 값 중 하나가 2 839라고 가정합니다.

Digital Shift by 1, 12비트 이미지 데이터 출력, 값 2839

이 픽셀 값에 digital shift by 1을 적용하면 결과 값이 12비트 Pixel Format의 가능한 최대값을 초과합니다(4096 + 1024 + 512 + 32 + 8 + 4 + 2 = 5678; 12비트 포맷의 최대값: 4 095). 이 경우 값은 최대값으로 설정되며, 즉 모든 비트가 1로 설정됩니다.

Digital Shift by 1, 12비트 이미지 데이터 출력, 결과 값 4095

정보

결과적으로 촬영 시나리오에 비해 너무 높은 Digital Shift 계수를 적용하지 않도록 주의하십시오. 그렇지 않으면 이미지의 모든 밝은 영역이 흰색으로 설정되어 이미지 정보가 손실됩니다.

샘플 코드#

// Disable digital shift
camera.DigitalShift.SetValue(0);
// Enable digital shift by 2
camera.DigitalShift.SetValue(2);
INodeMap& nodemap = camera.GetNodeMap();
// Disable digital shift
CIntegerParameter(nodemap, "DigitalShift").SetValue(0);
// Enable digital shift by 2
CIntegerParameter(nodemap, "DigitalShift").SetValue(2);
// Disable digital shift
camera.Parameters[PLCamera.DigitalShift].SetValue(0);
// Enable digital shift by 2
camera.Parameters[PLCamera.DigitalShift].SetValue(2);
/* 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 */
/* Disable digital shift */
errRes = PylonDeviceSetIntegerFeature(hdev, "DigitalShift", 0);
CHECK(errRes);
/* Enable digital shift by 2 */
errRes = PylonDeviceSetIntegerFeature(hdev, "DigitalShift", 2);
CHECK(errRes);
# Disable digital shift
camera.DigitalShift.Value = 0
# Enable digital shift by 2
camera.DigitalShift.Value = 2

또한 pylon Viewer를 사용하여 파라미터를 손쉽게 설정할 수 있습니다.