Tonal Range#
이 기능을 사용하려면 tonal range 및 이미지 히스토그램 개념에 대한 이해가 있어야 합니다.
Tonal Range를 자동으로 조정하려면 Tonal Range Auto 기능을 사용하십시오.
선형 또는 S-커브 함수를 사용하여 대비를 조정하려면 Brightness and Contrast 기능(사용 가능한 경우)을 사용하십시오.
기능 사용법#
대비 조정#
정보
Basler는 Tonal Range Auto 기능을 먼저 사용할 것을 권장합니다. 그 후 아래 지침에 따라 대비를 미세 조정할 수 있습니다.
수동으로 대비를 조정하는 방법:
- 낮은 대비 또는 색상 치우침과 같은 문제만 남은, 이미 양호한 이미지를 생성하는 상태인지 카메라를 확인하십시오. Tonal Range 작업은 이미 화질이 양호한 이미지에만 수행해야 합니다.
화질을 최적화할 때는 아래 순서를 따르십시오. - 다음 값 중 하나로
TonalRangeEnable매개변수:On. - 다음 값 중 하나로
TonalRangeSelector매개변수:Sum. - 다음 값 중 하나로
TonalRangeSourceDark및TonalRangeTargetDark파라미터 설정: 어두운 소스 및 타깃 값.
어두운 타깃 값이 하위 어두운 소스 값보다 크면 대비가 증가합니다. - 다음 값 중 하나로
TonalRangeSourceBright및TonalRangeTargetBright파라미터 설정: 밝은 소스 및 타깃 값.
밝은 타깃 값이 크고 밝은 소스 값보다 크면 대비가 증가합니다.
색상 치우침 보정#
정보
Basler는 Tonal Range Auto 기능을 먼저 사용할 것을 권장합니다. 그 후 아래 지침에 따라 색상 보정을 미세 조정할 수 있습니다.
수동으로 색상 치우침을 보정하는 방법:
- 낮은 대비 또는 색상 치우침과 같은 문제만 남은, 이미 양호한 이미지를 생성하는 상태인지 카메라를 확인하십시오. Tonal Range 작업은 이미 화질이 양호한 이미지에만 수행해야 합니다.
화질을 최적화할 때는 아래 순서를 따르십시오. - 다음 값 중 하나로
TonalRangeEnable매개변수:On. - 다음 값 중 하나로
TonalRangeSelector매개변수:Red,Green, 또는Blue, 보정하려는 색상 치우침에 따라 다릅니다.
예: 이미지에 녹색 캐스트가 있는 경우 파라미터를 다음으로 설정하십시오.Green. - 다음 값 중 하나로
TonalRangeSourceDark,TonalRangeTargetDark,TonalRangeSourceBright및TonalRangeTargetBright파라미터를 다음으로 설정: 소스 및 타겟 값 현재 히스토그램을 다른 히스토그램에 정렬합니다.
이미지 최적화 순서#
부작용을 방지하고 이미지 Quality을 최적화하려면 다음 순서를 따르십시오.
- 기본 이미지 최적화를 위해 Exposure Time, Black Level 및 Gain 기능을 사용하십시오. 이미지가 과도하게 채도되지 않도록 하십시오.
- 컬러 카메라를 사용하는 경우 Light Source Preset, Balance White Auto 또는 Balance White 기능을 사용하여 화이트 밸런스를 조절하십시오.
- 대비, 색상 또는 둘 다를 최적화하려면 Tonal Range Auto 및 Tonal Range 기능을 사용하십시오.
작동 원리#
Tonal Range 작업은 이미지의 톤 분포를 그래픽으로 표현한 것, 즉 image histogram을 보면 가장 잘 이해할 수 있습니다.
Basler pylon Viewer는 Tonal Range 작업을 수행할 때 매우 유용한 Histogram 창을 제공합니다.
정보
카메라에서 활성화된 다른 기능에 따라, pylon Viewer의 Histogram 창에는 Tonal Range 기능이 실제로 사용하는 데이터가 표시되지 않을 수 있습니다.
예를 들어 Gamma 기능은 Tonal Range 작업 후에 처리됩니다. 결과적으로 감마 보정은 pylon Viewer에 표시되는 히스토그램에는 포함되지만, Tonal Range 기능이 사용하는 데이터에는 포함되지 않습니다.
소스 및 타깃 값#
대비와 Color Adjustment 모두 source 값을 target 값에 매핑하는 동일한 개념을 기반으로 합니다.
이를 설명하기 위해 source 값을 히스토그램의 "앵커"로 생각하고, target 값을 앵커가 이동하는 지점으로 생각할 수 있습니다.

source 값이 target 값에 매핑되면 전체 히스토그램이 그에 따라 확산되거나 늘어납니다.

어둡거나 밝은 소스 및 타겟 값#
위에서 설명한 것처럼 Tonal Range 작업을 수행하려면 두 가지 소스 및 타겟 값 세트를 정의해야 합니다.
- 어두운 소스 및 타겟 값은 하위 히스토그램의 끝 부분에 위치합니다.
이러한 값을 지정하려면 다음을 사용합니다.TonalRangeSourceDark및TonalRangeTargetDark파라미터의 상태를 업데이트합니다. - 밝은 소스 및 타겟 값은 상단 히스토그램의 끝 부분에 위치합니다.
이러한 값을 지정하려면 다음을 사용합니다.TonalRangeSourceBright및TonalRangeTargetBright파라미터의 상태를 업데이트합니다.
모든 소스 및 타겟 값은 0부터 최대 픽셀 값(예: 12비트 Pixel Format이 설정된 경우 4095)까지 지정할 수 있습니다. 히스토그램 늘리기 및 확산 정도가 제한되므로 매개변수 범위도 제한될 수 있습니다.
대비 조정(모노 및 컬러 카메라)#
Tonal Range 기능을 지원하는 모든 카메라에서 이 기능을 사용하여 대비를 조절할 수 있습니다.
대비가 낮은 이미지는 톤 범위가 좁습니다.

Tonal Range 기능을 사용하면 Tonal Range를 수동으로 넓혀 대비를 높일 수 있습니다.

Tonal Range를 넓히려면 dark source value를 더 낮은 target 값에 매핑하고 bright source value를 더 높은 target 값에 매핑합니다.
두 source 값 사이의 영역은 미드톤, 즉 이미지에 필수적이라고 판단되는 픽셀 값을 정의합니다.
이 과정을 자동화하려면 Tonal Range Auto 기능을 사용하십시오.
색상 보정(컬러 카메라 전용)#
Tonal Range 기능을 지원하는 컬러 카메라에서는 이 기능을 사용하여 색상 치우침을 보정할 수도 있습니다.
이미지의 색상이 치우친 경우, 세 개의 RGB(빨간색, 초록색, 파란색) 히스토그램이 정렬되지 않은 상태로 나타납니다. 예를 들어 이미지에 붉은빛이 도는 경우, 빨간색 히스토그램이 초록색 및 파란색 히스토그램보다 오른쪽으로 훨씬 더 치우쳐 표시됩니다(아래 예시 참조).
Tonal Range 기능을 사용하면 RGB 히스토그램을 수동으로 정렬하여 색상 치우침을 줄일 수 있습니다.

모든 히스토그램이 늘어나고 유사한 시작점 및 종료점으로 이동하도록 source 및 target 값을 설정하여 RGB 히스토그램을 정렬할 수 있습니다.
이 과정을 자동화하려면 Tonal Range Auto 기능을 사용하십시오.
외부 링크#
샘플 코드#
// Enable tonal range adjustments
camera.TonalRangeEnable.SetValue(TonalRangeEnable_On);
// Specify that the summed RGB pixel values are used for tonal range adjustments
camera.TonalRangeSelector.SetValue(TonalRangeSelector_Sum);
// Set the dark source and target values
camera.TonalRangeSourceDark.SetValue(30);
camera.TonalRangeTargetDark.SetValue(0);
// Set the bright source and target values
camera.TonalRangeSourceBright.SetValue(240);
camera.TonalRangeTargetBright.SetValue(255);
INodeMap& nodemap = camera.GetNodeMap();
// Enable tonal range adjustments
CEnumParameter(nodemap, "TonalRangeEnable").SetValue("On");
// Specify that the summed RGB pixel values are used for tonal range adjustments
CEnumParameter(nodemap, "TonalRangeSelector").SetValue("Sum");
// Set the dark source and target values
CIntegerParameter(nodemap, "TonalRangeSourceDark").SetValue(30);
CIntegerParameter(nodemap, "TonalRangeTargetDark").SetValue(0);
// Set the bright source and target values
CIntegerParameter(nodemap, "TonalRangeSourceBright").SetValue(240);
CIntegerParameter(nodemap, "TonalRangeTargetBright").SetValue(255);
// Enable tonal range adjustments
camera.Parameters[PLCamera.TonalRangeEnable].SetValue(PLCamera.TonalRangeEnable.On);
// Specify that the summed RGB pixel values are used for tonal range adjustments
camera.Parameters[PLCamera.TonalRangeSelector].SetValue(PLCamera.TonalRangeSelector.Sum);
// Set the dark source and target values
camera.Parameters[PLCamera.TonalRangeSourceDark].SetValue(30);
camera.Parameters[PLCamera.TonalRangeTargetDark].SetValue(0);
// Set the bright source and target values
camera.Parameters[PLCamera.TonalRangeSourceBright].SetValue(240);
camera.Parameters[PLCamera.TonalRangeTargetBright].SetValue(255);
/* 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 */
/* Enable tonal range adjustments */
errRes = PylonDeviceFeatureFromString(hdev, "TonalRangeEnable", "On");
CHECK(errRes);
/* Specify that the summed RGB pixel values are used for tonal range adjustments */
errRes = PylonDeviceFeatureFromString(hdev, "TonalRangeSelector", "Sum");
CHECK(errRes);
/* Set the dark source and target values */
errRes = PylonDeviceSetIntegerFeature(hdev, "TonalRangeSourceDark", 30);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "TonalRangeTargetDark", 0);
CHECK(errRes);
/* Set the bright source and target values */
errRes = PylonDeviceSetIntegerFeature(hdev, "TonalRangeSourceBright", 240);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "TonalRangeTargetBright", 255);
CHECK(errRes);
# Enable tonal range adjustments
camera.TonalRangeEnable.Value = "On"
# Specify that the summed RGB pixel values are used for tonal range adjustments
camera.TonalRangeSelector.Value = "Sum"
# Set the dark source and target values
camera.TonalRangeSourceDark.Value = 30
camera.TonalRangeTargetDark.Value = 0
# Set the bright source and target values
camera.TonalRangeSourceBright.Value = 240
camera.TonalRangeTargetBright.Value = 255
또한 pylon Viewer를 사용하여 파라미터를 손쉽게 설정할 수 있습니다.