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

Scaling#

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

Scaling 기능은 ace 2 카메라에서만 사용할 수 있는 Pixel Beyond 기능과 유사합니다.

기능 사용#

작동 방식#

Scaling 중에는 보간법(interpolation)에 의해 이미지 크기가 비례적으로 축소됩니다. 픽셀 값은 스케일링된 이미지의 픽셀에 매핑되도록 필요에 따라 합산되고 평균화됩니다. 이를 통해 신호 대 잡음비가 증가합니다.

Scaling은 사용자가 선택한 스케일링 팩터에 의해 제어됩니다. 수평 및 수직 방향에 동일한 팩터가 적용됩니다. 팩터가 1.0인 경우 이미지 크기는 유지됩니다. 1.0보다 작은 팩터는 이미지의 너비와 높이를 축소시킵니다.

Configuring Scaling#

Scaling을 구성하려면:

  1. 카메라가 유휴 상태인지, 즉 이미지를 캡처하고 있지 않은지 확인하십시오.
  2. binning 및 decimation 팩터를 1로 설정하여 Decimation과 Binning을 비활성화합니다.
  3. 파라미터를 원하는 ScalingHorizontal 매개변수를 원하는 scaling 값.

정보

  • 변경 중 ScalingHorizontal 파라미터 값은 자동으로 ScalingVertical 파라미터 값에 적용됩니다. 이를 통해 원래의 가로세로 비율이 유지됩니다.
  • Scaling 기능을 사용하는 경우 Binning과 Decimation을 사용할 수 없습니다.

Scaling Values#

0.125에서 1 사이의 스케일링 팩터를 선택할 수 있습니다. 단, 112개의 개별 값만 사용할 수 있습니다. 사용할 수 없는 값을 입력하면 부동 소수점 제어 기능이 자동으로 가장 가까운 사용 가능 값으로 반올림하거나 반내림합니다.

유효한 값을 계산하려면 다음 공식을 사용하십시오: 16/x (여기서 x = 16에서 128 사이의 임의의 자연수).

예제 결과 Scaling 팩터 결과
16 / 16 1.0 기본 설정. Scaling이 비활성화됩니다. 원래 이미지 크기는 변경되지 않습니다.
Binning과 Decimation을 사용할 수 있습니다.
16 / 17 0.941
16 / 18 0.888
기타 등등 …
16 / 32 0.5 이미지 크기가 절반으로 줄어듭니다(팩터 2).
16 / 64 0.25 이미지 크기가 팩터 4만큼 줄어듭니다.
기타 등등 …
16 / 128 0.125 이미지 크기가 8배(가장 큰 축소) 줄어듭니다.

Scaling 사용 시 고려 사항#

ROI 설정에 미치는 영향#

Scaling을 사용할 때 Image ROI 및 Auto Function ROI 설정은 센서의 물리적 행과 열이 아니라 수정된 이미지의 스케일링된 행과 열을 참조합니다.

예를 들어, 3,840 x 2,748 센서가 장착된 카메라를 사용한다고 가정해 보겠습니다. 전체 해상도에 0.5의 Scaling factor가 적용됩니다. 이 경우 최대 ROI 너비는 1918이고 최대 ROI 높이는 1372입니다. ROI 너비와 높이 파라미터는 자동으로 조정됩니다. 마찬가지로 Scaling을 활성화하기 전에 정의한 오프셋도 자동으로 조정됩니다.

Scaling이 비활성화되면 ROI가 다시 증가하지만 원래 ROI보다 작을 수 있습니다.

정보

Basler에서는 Scaling을 비활성화한 후 항상 Image ROI 설정을 확인하고, 필요한 경우 Image ROI를 수동으로 원하는 크기와 위치로 복원할 것을 권장합니다.

해상도 감소#

Scaling을 사용하면 카메라 이미지 센서의 해상도가 효과적으로 감소합니다. 예를 들어 3,840 x 2,748 센서가 장착된 카메라에서 0.25의 Scaling factor를 구성하는 경우 카메라의 유효 해상도는 954 x 682로 감소합니다.

반올림 손실#

Scaling 중에는 이미지 치수가 자주 반올림됩니다. Scaling factor를 반복해서 변경하면 반올림 효과가 누적됩니다. 이전 이미지 크기로 돌아갈 때 반올림으로 인해 손실된 치수는 복원할 수 없습니다.

누적된 반올림 손실을 방지하려면 이전 이미지 크기를 수동으로 복원하십시오. 또는 전체 해상도와 같은 "참조" 이미지 크기로 돌아간 후 반올림 오류를 방지하기 위해 이미지 크기를 수동으로 지정하십시오.

샘플 코드#

ace Classic/U/L GigE Cameras#
// Set horizontal scaling to 0.5
camera.ScalingHorizontalAbs.SetValue(0.5);
// Disable scaling
camera.ScalingHorizontalAbs.SetValue(1);
INodeMap& nodemap = camera.GetNodeMap();
// Set horizontal scaling to 0.5
CFloatParameter(nodemap, "ScalingHorizontalAbs").SetValue(0.5);
// Disable scaling
CIntegerParameter(nodemap, "ScalingHorizontalAbs").SetValue(1);
// Set horizontal scaling to 0.5
camera.Parameters[PLCamera.ScalingHorizontalAbs].SetValue(0.5);
// Disable scaling
camera.Parameters[PLCamera.ScalingHorizontalAbs].SetValue(1);
/* 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 horizontal scaling to 0.5 */
errRes = PylonDeviceSetFloatFeature(hdev, "ScalingHorizontalAbs", 0.5);
CHECK(errRes);
/* Disable scaling */
errRes = PylonDeviceSetIntegerFeature(hdev, "ScalingHorizontalAbs", 1);
CHECK(errRes);
# Set horizontal scaling to 0.5
camera.ScalingHorizontalAbs.Value = 0.5
# Disable scaling
camera.ScalingHorizontalAbs.Value = 1
기타 카메라#
// Set horizontal scaling to 0.5
camera.ScalingHorizontal.SetValue(0.5);
// Disable scaling
camera.ScalingHorizontal.SetValue(1);
INodeMap& nodemap = camera.GetNodeMap();
// Set horizontal scaling to 0.5
CFloatParameter(nodemap, "ScalingHorizontal").SetValue(0.5);
// Disable scaling
CIntegerParameter(nodemap, "ScalingHorizontal").SetValue(1);
// Set horizontal scaling to 0.5
camera.Parameters[PLCamera.ScalingHorizontal].SetValue(0.5);
// Disable scaling
camera.Parameters[PLCamera.ScalingHorizontal].SetValue(1);
/* 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 horizontal scaling to 0.5 */
errRes = PylonDeviceSetFloatFeature(hdev, "ScalingHorizontal", 0.5);
CHECK(errRes);
/* Disable scaling */
errRes = PylonDeviceSetIntegerFeature(hdev, "ScalingHorizontal", 1);
CHECK(errRes);
# Set horizontal scaling to 0.5
camera.ScalingHorizontal.Value = 0.5
# Disable scaling
camera.ScalingHorizontal.Value = 1

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