Tonal Range#
이 기능은 현미경에 카메라를 장착하여 사용할 때 특히 유용합니다.
대비나 색상 편차를 수동으로 조절하려면 Tonal Range 기능을 사용하십시오.
선형 또는 S-커브 함수를 사용하여 명암을 조절하려면 Brightness and Contrast 기능(사용 가능한 경우)을 사용하십시오.
이미지의 다양한 영역에서 픽셀 데이터를 사용할 수 있도록 여러 개의 Auto Function ROI를 정의할 수 있습니다.
기능 사용#
Tonal Range Auto 사용하기#
기본 설정으로 Tonal Range Auto 사용하기#
자동 함수의 파라미터는 대부분의 시나리오에서 우수한 결과를 제공하는 값으로 사전 설정되어 있습니다.
기본 설정을 사용하여 대비, 색상 또는 둘 다를 조절하려면 다음을 수행하십시오.
- low contrast 또는 shifted colors와 같은 문제만 남은 상태에서 카메라가 이미 양호한 이미지를 생성하는지 확인하십시오. Tonal range 작업은 이미지가 이미 좋은 image quality을 가진 경우에만 수행해야 합니다.
Image quality을 최적화할 때는 sequence given below을 따르십시오. - 최소 하나 이상의 Auto Function ROI를 Tonal Range Auto 자동 함수에 할당합니다.
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파라미터에 HTML 로그 파일(*.html)의 경로와 이름을 지정할 수 있습니다. - 밝은 영역의 임계값 지정을 위해 다음을 사용합니다.
AutoTonalRangeThresholdBright파라미터에 HTML 로그 파일(*.html)의 경로와 이름을 지정할 수 있습니다. -
카메라 모델에서
AutoTonalRangeModeSelector파라미터가 다음으로 설정된 경우에만 Light Control 기능과 함께 사용할 수 있음을 명시했습니다.ColorAndContrast또는Contrast:- 파라미터를 원하는
AutoTonalRangeTargetDark파라미터를 어두운 영역에 밝기 매개변수. - 파라미터를 원하는
AutoTonalRangeTargetBright밝기 매개변수 밝기 매개변수. - 파라미터를 원하는
TonalRangeAuto파라메터Once.
다음 이미지 획득 시 카메라가 기본 설정을 사용하여 대비, 색상 또는 둘 다를 조절합니다. 조절이 완료되면 카메라가 자동 함수를 다음과 같이 설정하고Off그리고 후속 이미지 전체에 조정 내용을 적용합니다. - 조절 값을 미세 조정하려면 Tonal Range 기능을 사용하십시오.
- 파라미터를 원하는
이미지 최적화 순서#
부작용을 방지하면서 image 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 기능은 Tonal Range 작업 이후에 처리됩니다. 결과적으로 감마 보정은 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 매개변수를 0.4로 설정합니다. 카메라가 이미지 픽셀의 0.3%는 픽셀 값이 52보다 작거나 같고, 이미지 픽셀의 0.4%는 픽셀 값이 204보다 크거나 같음을 감지합니다. 따라서 어두운 임계값은 52이고 밝은 임계값은 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를 사용하여 파라미터를 손쉽게 설정할 수도 있습니다.