Tonal Range#
이 기능은 현미경에 카메라를 사용할 때 특히 유용합니다.
대비 또는 색상 치우침을 수동으로 조절하려면 Tonal Range 기능을 사용하십시오.
선형 또는 S-커브 함수를 사용하여 대비를 조정하려면 Brightness and Contrast 기능(사용 가능한 경우)을 사용하십시오.
이미지의 다양한 부분에서 픽셀 데이터를 사용할 수 있도록 여러 개의 Auto Function ROI를 정의할 수 있습니다.
기능 사용법#
Tonal Range Auto 사용#
기본 설정으로 Tonal Range Auto 사용하기#
자동 기능의 파라미터는 대부분의 시나리오에서 우수한 결과를 제공하는 값으로 사전 설정되어 있습니다.
기본 설정을 사용하여 대비, 색상 또는 둘 다를 조절하려면 다음을 수행하십시오.
- 낮은 대비 또는 색상 치우침과 같은 문제만 남은, 이미 양호한 이미지를 생성하는 상태인지 카메라를 확인하십시오. Tonal Range 작업은 이미 화질이 양호한 이미지에만 수행해야 합니다.
화질을 최적화할 때는 아래 순서를 따르십시오. - Tonal Range Auto 자동 기능에 하나 이상의 auto function ROI를 할당합니다.
auto function ROI가 Image ROI와 부분적으로 또는 완전히 겹치는지 확인하십시오. - 컬러 카메라를 사용하는 경우:
- 단 한 번의 단계로 대비와 색상을 모두 조절하려면 다음을 설정하십시오.
AutoTonalRangeModeSelector매개변수:ColorAndContrast. - 대비만 조절하려면 다음을 설정하십시오.
AutoTonalRangeModeSelector매개변수:Contrast. - 색상 치우침만 보정하려면 다음을 설정하십시오.
AutoTonalRangeModeSelector매개변수:Color.
(모노 카메라를 사용하는 경우 대비 조절만 사용할 수 있습니다.AutoTonalRangeModeSelector파라미터는 다음으로 사전 설정되어 있으며Contrast변경할 수 없습니다.)
- 단 한 번의 단계로 대비와 색상을 모두 조절하려면 다음을 설정하십시오.
- 다음 값 중 하나로
TonalRangeAuto매개변수:Once.
다음 이미지 획득 시 카메라가 기본 설정을 사용하여 대비, 색상 또는 둘 다를 조절합니다. 조절이 완료되면 카메라는 자동 기능을 다음과 같이 설정합니다.Off후속 이미지 전체에 조절 값을 적용합니다. - 조절 값을 미세 조정하려면 Tonal Range 기능을 사용하십시오.
사용자 지정 설정으로 Tonal Range Auto 사용하기#
사용자 지정 설정으로 대비, 색상 또는 둘 다를 조절하려면:
- 컬러 카메라를 사용하는 경우:
- 단 한 번의 단계로 대비와 색상을 모두 조절하려면 다음을 설정하십시오.
AutoTonalRangeModeSelector매개변수:ColorAndContrast. - 대비만 조절하려면 다음을 설정하십시오.
AutoTonalRangeModeSelector매개변수:Contrast. - 색상 치우침만 보정하려면 다음을 설정하십시오.
AutoTonalRangeModeSelector매개변수:Color.
(모노 카메라를 사용하는 경우 대비 조절만 사용할 수 있습니다.AutoTonalRangeModeSelector파라미터는 다음으로 사전 설정되어 있으며Contrast변경할 수 없습니다.)
- 단 한 번의 단계로 대비와 색상을 모두 조절하려면 다음을 설정하십시오.
- 다음 값 중 하나로
AutoTonalRangeAdjustmentSelector매개변수를 다음 값 중 하나로 설정합니다:BrightAndDark(기본값): 이미지의 어둡고 밝은 부분에 자동 조절이 적용됩니다.Dark: 이미지의 어두운 부분에만 자동 조절이 적용됩니다.Bright: 이미지의 밝은 부분에만 자동 조절이 적용됩니다.
- 어두운 부분을 지정합니다. 임계값 사용하여
AutoTonalRangeThresholdDark파라미터. - 밝은 임계값 사용하여
AutoTonalRangeThresholdBright파라미터. -
만약
AutoTonalRangeModeSelector로 설정된 경우ColorAndContrast또는Contrast:- 다음 값 중 하나로
AutoTonalRangeTargetDark어두운 대상 값에 대한. - 다음 값 중 하나로
AutoTonalRangeTargetBright밝은 대상 값에 대한. - 다음 값 중 하나로
TonalRangeAuto매개변수:Once.
다음 이미지 획득 시 카메라가 기본 설정을 사용하여 대비, 색상 또는 둘 다를 조절합니다. 조절이 완료되면 카메라는 자동 기능을 다음과 같이 설정합니다.Off매개변수를 지정하고 후속 이미지에 조정을 적용합니다. - 조절 값을 미세 조정하려면 Tonal Range 기능을 사용하십시오.
- 다음 값 중 하나로
이미지 최적화 순서#
부작용을 방지하고 이미지 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 창에는 자동 기능이 실제로 사용하는 데이터가 표시되지 않을 수 있습니다.
예를 들어 Gamma 기능은 톤 영역 작업 후에 처리됩니다. 결과적으로 감마 보정은 pylon Viewer에 표시되는 히스토그램에는 포함되지만 자동 기능이 사용하는 데이터에는 포함되지 않습니다.
소스 및 타깃 값#
Tonal Range Auto 기능은 Tonal Range 기능과 동일한 개념, 즉 소스 값을 타겟 값으로 매핑하는 방식을 기반으로 합니다.
다른 점은 카메라가 소스 및 타겟 값을 결정하는 방식입니다.
- 카메라는 임계값을 계산하여 어둡고 밝은 소스 값을 결정합니다.
-
카메라는 다음과 같이 어둡고 밝은 타겟 값을 결정합니다.
- 대비 조정을 위해 카메라는 다음의 값을 읽습니다.
AutoTonalRangeTargetDark및AutoTonalRangeTargetBright파라미터의 상태를 업데이트합니다. - 색상 조정을 위해 카메라는 RGB 히스토그램을 올바르게 정렬할 타겟 값을 자동으로 결정합니다.
- 대비 조정을 위해 카메라는 다음의 값을 읽습니다.
카메라가 소스 및 타겟 값을 결정하면, Tonal Range 항목에 설명된 것과 정확히 동일하게 대비 및 색상 조정을 수행합니다.
임계값#
자동 Tonal Range 조정 중에는 임계값을 기반으로 소스 값이 자동으로 계산됩니다.
다음 항목을 사용하여 임계값을 지정해야 합니다. AutoTonalRangeThresholdDark 및 AutoTonalRangeThresholdBright 매개변수입니다. 매개변수는 이미지 전체 픽셀의 백분율로 표시됩니다.
정보
이 섹션에서는 할당된 Auto Function ROI와 Image ROI가 동일하다고 가정하며, 이는 기본 설정입니다. Auto Function ROI 설정을 변경한 경우, 백분율은 할당된 Auto Function ROI와 Image ROI 간의 중첩 영역에 있는 픽셀을 기준으로 합니다.
백분율로부터 카메라는 다음을 계산합니다.
- 어두운 임계값: 지정된 양의 픽셀이 임계값 보다 낮거나 같은 픽셀 값을 갖는 히스토그램의 값입니다.
- 밝은 임계값: 지정된 양의 픽셀이 임계값 보다 크거나 같은 픽셀 값을 갖는 히스토그램의 값입니다.
두 임계값 사이의 영역은 중간 톤, 즉 이미지에 필수적이라고 간주되는 픽셀 값을 정의합니다.
예: Image ROI의 AutoTonalRangeThresholdDark 매개변수를 0.3으로 설정하고 AutoTonalRangeThresholdBright parameter를 0.4로 설정합니다. 카메라가 이미지 내 픽셀의 0.3%가 52 이하의 픽셀 값을 갖고, 픽셀의 0.4%가 204 이상의 픽셀 값을 갖는 것을 감지합니다. 따라서 어두운 임계값(dark threshold)은 52이고 밝은 임계값(bright threshold)은 204입니다.

샘플 코드#
// Enable contrast adjustments only
camera.AutoTonalRangeModeSelector.SetValue(AutoTonalRangeModeSelector_Contrast);
// Specify that both ends of the tonal range are to be adjusted automatically
camera.AutoTonalRangeAdjustmentSelector.SetValue(AutoTonalRangeAdjustmentSelector_BrightAndDark);
// Set the percentage of pixels that is used to calculate the dark threshold
camera.AutoTonalRangeThresholdDark.SetValue(0.3);
// Set the percentage of pixels that is used to calculate the bright threshold
camera.AutoTonalRangeThresholdBright.SetValue(0.4);
// Set the dark target value
camera.AutoTonalRangeTargetDark.SetValue(0);
// Set the bright target value
camera.AutoTonalRangeTargetBright.SetValue(255);
// Enable the Tonal Range Auto auto function
camera.TonalRangeAuto.SetValue(TonalRangeAuto_Once);
INodeMap& nodemap = camera.GetNodeMap();
// Enable contrast adjustments only
CEnumParameter(nodemap, "AutoTonalRangeModeSelector").SetValue("Contrast");
// Specify that both ends of the tonal range are to be adjusted automatically
CEnumParameter(nodemap, "AutoTonalRangeAdjustmentSelector").SetValue("BrightAndDark");
// Set the percentage of pixels that is used to calculate the dark threshold
CFloatParameter(nodemap, "AutoTonalRangeThresholdDark").SetValue(0.3);
// Set the percentage of pixels that is used to calculate the bright threshold
CFloatParameter(nodemap, "AutoTonalRangeThresholdBright").SetValue(0.4);
// Set the dark target value
CIntegerParameter(nodemap, "AutoTonalRangeTargetDark").SetValue(0);
// Set the bright target value
CIntegerParameter(nodemap, "AutoTonalRangeTargetBright").SetValue(255);
// Enable the Tonal Range Auto auto function
CEnumParameter(nodemap, "TonalRangeAuto").SetValue("Once");
// Enable contrast adjustments only
camera.Parameters[PLCamera.AutoTonalRangeModeSelector].SetValue(PLCamera.AutoTonalRangeModeSelector.Contrast);
// Specify that both ends of the tonal range are to be adjusted automatically
camera.Parameters[PLCamera.AutoTonalRangeAdjustmentSelector].SetValue(PLCamera.AutoTonalRangeAdjustmentSelector.BrightAndDark);
// Set the percentage of pixels that is used to calculate the dark threshold
camera.Parameters[PLCamera.AutoTonalRangeThresholdDark].SetValue(0.3);
// Set the percentage of pixels that is used to calculate the bright threshold
camera.Parameters[PLCamera.AutoTonalRangeThresholdBright].SetValue(0.4);
// Set the dark target value
camera.Parameters[PLCamera.AutoTonalRangeTargetDark].SetValue(0);
// Set the bright target value
camera.Parameters[PLCamera.AutoTonalRangeTargetBright].SetValue(255);
// Enable the Tonal Range Auto auto function
camera.Parameters[PLCamera.TonalRangeAuto].SetValue(PLCamera.TonalRangeAuto.Once);
/* 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 contrast adjustments only */
errRes = PylonDeviceFeatureFromString(hdev, "AutoTonalRangeModeSelector", "Contrast");
CHECK(errRes);
/* Specify that both ends of the tonal range are to be adjusted automatically */
errRes = PylonDeviceFeatureFromString(hdev, "AutoTonalRangeAdjustmentSelector", "BrightAndDark");
CHECK(errRes);
/* Set the percentage of pixels that is used to calculate the dark threshold */
errRes = PylonDeviceSetFloatFeature(hdev, "AutoTonalRangeThresholdDark", 0.3);
CHECK(errRes);
/* Set the percentage of pixels that is used to calculate the bright threshold */
errRes = PylonDeviceSetFloatFeature(hdev, "AutoTonalRangeThresholdBright", 0.4);
CHECK(errRes);
/* Set the dark target value */
errRes = PylonDeviceSetIntegerFeature(hdev, "AutoTonalRangeTargetDark", 0);
CHECK(errRes);
/* Set the bright target value */
errRes = PylonDeviceSetIntegerFeature(hdev, "AutoTonalRangeTargetBright", 255);
CHECK(errRes);
/* Enable the Tonal Range Auto auto function */
errRes = PylonDeviceFeatureFromString(hdev, "TonalRangeAuto", "Once");
CHECK(errRes);
# Enable contrast adjustments only
camera.AutoTonalRangeModeSelector.Value = "Contrast"
# Specify that both ends of the tonal range are to be adjusted automatically
camera.AutoTonalRangeAdjustmentSelector.Value = "BrightAndDark"
# Set the percentage of pixels that is used to calculate the dark threshold
camera.AutoTonalRangeThresholdDark.Value = 0.3
# Set the percentage of pixels that is used to calculate the bright threshold
camera.AutoTonalRangeThresholdBright.Value = 0.4
# Set the dark target value
camera.AutoTonalRangeTargetDark.Value = 0
# Set the bright target value
camera.AutoTonalRangeTargetBright.Value = 255
# Enable the Tonal Range Auto auto function
camera.TonalRangeAuto.Value = "Once"
또한 pylon Viewer를 사용하여 파라미터를 손쉽게 설정할 수 있습니다.