Gamma Correction
1 개요
Gamma Correction 알고리즘은 비선형 전달 함수를 사용하여 빛의 강도 신호를 비선형적으로 변형하는 알고리즘 입니다.
2 알고리즘 상세 설명
- Encoding
- Decoding
- : 보정 상수
- : 보정 오프셋
- : 적용 임계치
- : 이미지 포맷 범위의 최댓값
- : 변환 함수가 연속이 되도록하는 상수
Encoding 과 Decoding은 서로 역변환 관계입니다. Encoding의 인 경우 이미지의 밝기가 올라가며, 이는 Decoding의 과 같은 효과를 나타냅니다.
FLImaging® 은 Estimation 기능을 제공하여 최적의 밝기 값을 표현하는 파라미터 값을 산출하여 자동 적용할 수 있습니다.
노이즈 이미지 | 결과 이미지 |
---|---|
![]() |
![]() |
위의 예시는 예제 이미지를 사용하여 Default 설정으로 동작한 예시입니다.
3 예제 코드
CGammaCorrection gammaCorrection;
CFLImage fliSourceImage;
gammaCorrection.SetSourceImage(fliSourceImage);
gammaCorrection.SetOperationType(CGammaCorrection::EOperationType_Encoding);
gammaCorrection.SetCorrectionValue(CGammaCorrection::ECorrectionValue_Pixel);
gammaCorrection.EnableWithEstimation(true);
gammaCorrection.Execute();
4 파라미터 설정 및 사용 방법
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetCorrectionValue | ECorrectionValue | eCorrectionValue | IN | 보정 대상 설정자 |
GetCorrectionValue | ECorrectionValue | eCorrectionValue | OUT | 보정 대상 접근자 |
CGammaCorrection::ECorrectionValue_Pixel
- RGB 공간 상의 원본 픽셀 값을 보정 처리 합니다.
CGammaCorrection::ECorrectionValue_Luminance
- YCbCr 공간 상으로 변환 후 Luminance 값을 보정 처리 합니다.
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetOperationType | EOperationType | eOperationType | IN | 연산 타입 설정자 |
GetOperationType | EOperationType | eOperationType | OUT | 연산 타입 접근자 |
CGammaCorrection::EOperationType_Encoding
- Gamma Correction 의 정방향 연산입니다.
CGammaCorrection::EOperationType_Decoding
- Gamma Correction 의 역방향 연산입니다.
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
EnableWithEstimation | bool | bWithEstimate | IN | 추정 기능 설정자 |
IsWithEstimationEnabled | bool | bWithEstimate | OUT | 추정 기능 접근자 |
true
- 이미지의 밝기를 보정하기 위한 파라미터 추정을 진행 후 자동 보정합니다.
false
- 이미지의 밝기를 보정하기 위한 파라미터 추정과 보정 연산을 나누어 실행합니다.
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
EnableManualMode | bool | bManualMode | IN | 수동 모드 설정자 |
IsManualModeEnabled | bool | bManualMode | OUT | 수동 모드 접근자 |
true
- 이미지의 밝기를 보정하기 위한 파라미터 값을 사용자가 직접 입력하여 보정을 진행합니다.
false
- 이미지의 밝기를 보정하기 위한 파라미터 추정 기능을 사용합니다.
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetGamma | double | f64Gamma | IN | Gamma 설정자 |
GetGamma | double | f64Gamma | OUT | Gamma 접근자 |
Gamma 곡선의 커브를 결정하는 파라미터입니다.
f64Gamma
- Default Value : 0.6, Recommended Value : 0.3 ~ 3
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetOffset | double | f64Offset | IN | Offset 설정자 |
GetOffset | double | f64Offset | OUT | Offset 접근자 |
Gamma 곡선의 Offset 을 결정하는 파라미터입니다.
f64Offset
- Default Value : 0, Recommended Value : 0 ~ 0.5
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetThreshold | double | f64Threshold | IN | Threshold 설정자 |
GetThreshold | double | f64Threshold | OUT | Threshold 접근자 |
Gamma 곡선을 적용할 임계치를 결정하는 파라미터입니다.
f64Threshold
- Default Value : 0, Recommended Value : 0 ~ 0.5
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
GetEstGamma | double | f64EstGamma | OUT | 추정 Gamma 접근자 |
GetEstOffset | double | f64EstOffset | OUT | 추정 Offset 접근자 |
GetEstThreshold | double | f64EstThreshold | OUT | 추정 Threshold 접근자 |
Estimation 기능을 사용할 시 산출된 파라미터 값에 접근하는 함수입니다.