콘텐츠로 바로 가기
STAGING SERVER
DEVELOPMENT SERVER

Pixel Beyond#

Pixel Beyond 카메라 기능을 사용하면 카메라에서 출력되는 이미지의 해상도를 줄일 수 있습니다.

이 기능은 Binning 기능과 유사하지만, 해상을 더욱 세밀하게 조절할 수 있습니다.

자세한 내용은 Basler 웹사이트의 기능 설명을 참조하십시오.

기능 사용#

Pixel Beyond를 사용하는 이유#

Pixel Beyond 기능은 Binning 기능과 유사하게 작동합니다. 카메라는 인접한 픽셀들의 픽셀 값을 결합하며, 이는 시야각(field of view)을 변경하지 않고 효과적으로 해상도를 낮춥니다.

애플리케이션과 이미지 센서의 특성에 따라 다음과 같은 이점을 얻을 수 있습니다:

  • 광 반응성 향상
  • 데이터 양 감소
  • 프레임 속도 증가
  • 신호 대 잡음비(SNR) 향상
  • 다른 센서의 해상도를 시뮬레이션하는 기능. 이를 통해 비전 시스템을 재설계하지 않고도 단종된 센서를 교체할 수 있습니다.

Binning 기능은 정수 단계(예: 2x2 또는 3x3 binning 사용)로만 해상도를 줄일 수 있는 반면, Pixel Beyond 기능은 float Scaling 값을 사용하여 해상도를 조절할 수 있습니다. 이를 통해 더 큰 유연성을 제공합니다.

또한, 다른 Scaling 알고리즘과 달리 결과 이미지의 EMVA data는 보간법(interpolation)에 의해 영향을 받지 않습니다.

Pixel Beyond 구성하기#

Pixel Beyond를 구성하려면:

  1. 카메라가 대기 상태이며 이미지를 캡처하고 있지 않은지 확인하십시오.
  2. 카메라가 컬러 카메라인 경우, Pixel Format을 non-Bayer 컬러 Pixel Format(사용 가능한 RGB, BGR 또는 YUV Pixel Format 중 하나)으로 설정합니다.
  3. 파라미터를 원하는 BslScalingFactor 파라미터를 1.0에서 2.8 사이의 값으로 설정합니다.

계수(factor)가 1.0일 때 이미지 해상도는 동일하게 유지됩니다. 1.0보다 큰 계수는 이미지의 너비와 높이를 비례하여 줄입니다:

  • Width * (1 / BslScalingFactor) = 스케일링된 너비
  • Height * (1 / BslScalingFactor) = 스케일링된 높이

예: Image ROI 너비가 1936으로 설정되어 있고 Scaling 계수를 1.75로 설정했다고 가정합니다. 카메라가 출력하는 이미지의 너비는 1936 * (1 / 1.75) = 1106이 됩니다.

정보

카메라 모델에 따라 값이 다르게 반올림됩니다. 따라서 실제 이미지 크기는 계산된 이미지 크기와 다를 수 있습니다.

Scaling Factor 계산하기#

이미지 크기#

이미지를 특정 크기로 스케일링해야 하고 Scaling 계수를 알아야 하는 경우 다음 공식을 사용하십시오:

Width / 원하는 너비 = BslScalingFactor

Scaling은 항상 비례적으로 수행되므로 너비만 지정하면 됩니다.

예: Image ROI가 1936 x 1216이고 이미지를 800 x 600으로 스케일링하려는 경우 적절한 Scaling 계수는 1936 / 800 = 2.42입니다.

픽셀 크기#

단종된 센서를 특정 픽셀 크기의 센서로 교체하려 할 때 Scaling 팩터를 확인하려면 다음 공식을 사용하십시오.

이전 센서 픽셀 크기 / 현재 센서 픽셀 크기 = BslScalingFactor

예시: 픽셀 크기가 7.4 µm인 ICX424 센서를 a2A1920-51gcPRO의 IMX392 센서(3.45 µm 픽셀 크기)로 교체한다고 가정해 보겠습니다. 적절한 Scaling 팩터는 7.4 / 3.45 = 2.14입니다.

샘플 코드#

// Set scaling to 1.5, i.e., set the resolution
// to (1 / 1.5) = 66 % of the original resolution
camera.BslScalingFactor.SetValue(1.5);
// Disable scaling
camera.BslScalingFactor.SetValue(1.0);
INodeMap& nodemap = camera.GetNodeMap();
// Set scaling to 1.5, i.e., set the resolution
// to (1 / 1.5) = 66 % of the original resolution
CFloatParameter(nodemap, "BslScalingFactor").SetValue(1.5);
// Disable scaling
CFloatParameter(nodemap, "BslScalingFactor").SetValue(1.0);
// Set scaling to 1.5, i.e., set the resolution
// to (1 / 1.5) = 66 % of the original resolution
camera.Parameters[PLCamera.BslScalingFactor].SetValue(1.5);
// Disable scaling
camera.Parameters[PLCamera.BslScalingFactor].SetValue(1.0);
/* 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 */
/* Set scaling to 1.5, i.e., set the resolution */
/* to (1 / 1.5) = 66 % of the original resolution */
errRes = PylonDeviceSetFloatFeature(hdev, "BslScalingFactor", 1.5);
CHECK(errRes);
/* Disable scaling */
errRes = PylonDeviceSetFloatFeature(hdev, "BslScalingFactor", 1.0);
CHECK(errRes);
# Set scaling to 1.5, i.e., set the resolution
# to (1 / 1.5) = 66 % of the original resolution
camera.BslScalingFactor.Value = 1.5
# Disable scaling
camera.BslScalingFactor.Value = 1.0

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