1.1 Radial Gradation

1 개요

Radial Gradation은 이미지에 방사형 그라데이션을 적용하는 알고리즘입니다.

2 알고리즘 상세 설명

입력된 원과 도넛 영역 중심에서 방사하는 방향으로 입력된 이미지에 Gradation을 적용합니다.

알고리즘 동작 결과
입력 입력 이미지 결과 결과 이미지
실행 결과

사용되는 수식은 다음과 같습니다.

PN=PC(1AC)+VCACP_N = P_C * (1 - A_C) + V_C * A_C

AC=AS+(AEAS)LRA_C = A_S + (A_E - A_S) * L_R

VC=VS+(VEVS)LRV_C = V_S + (V_E - V_S) * L_R

다중 채널의 경우 각 채널에 대하여 알고리즘이 적용되며 각 채널의 Alpha, Gradation 값이 적용됩니다.

3 파라미터 설정 및 사용 방법

4 예제 코드

// 알고리즘 객체 생성합니다.
CRadialGradation radialGradation;

// 이미지를 입력합니다.
CFLImage fliSourceImage;
radialGradation.SetSourceImage(fliSourceImage);

// Gradation 영역 설정
CFLCircle<double> flfRegion;
radialGradation.SetRadialRegion(flfRegion);

// Gradation 시작 Alpha 설정
CMultiVar<double> mvStartAlpha;
radialGradation.SetStartAlpha(mvStartAlpha);

// Gradation 끝 Alpha 설정
CMultiVar<double> mvEndAlpha;
radialGradation.SetEndAlpha(mvEndAlpha);

// Gradation 시작 Gradation 설정
CMultiVar<double> mvStartValue;
radialGradation.SetStartValue(mvStartValue);

// Gradation 끝 Gradation 설정
CMultiVar<double> mvEndValue;
radialGradation.SetEndValue(mvEndValue);

// 알고리즘 실행
radialGradation.Execute();
// 알고리즘 객체 생성합니다.
CRadialGradation radialGradation = new CRadialGradation();

// 이미지를 입력합니다.
CFLImage fliSourceImage = new CFLImage();
radialGradation.SetSourceImage(ref fliSourceImage);

// Gradation 영역 설정
CFLCircle<double> flfRegion = new CFLCircle<double>();
radialGradation.SetRadialRegion(flfRegion);

// Gradation 시작 Alpha 설정
CMultiVar<double> mvStartAlpha = new CMultiVar<double>();
radialGradation.SetStartAlpha(mvStartAlpha);

// Gradation 끝 Alpha 설정
CMultiVar<double> mvEndAlpha = new CMultiVar<double>();
radialGradation.SetEndAlpha(mvEndAlpha);

// Gradation 시작 Gradation 설정
CMultiVar<double> mvStartValue = new CMultiVar<double>();
radialGradation.SetStartValue(mvStartValue);

// Gradation 끝 Gradation 설정
CMultiVar<double> mvEndValue = new CMultiVar<double>();
radialGradation.SetEndValue(mvEndValue);

// 알고리즘 실행
radialGradation.Execute();
# 알고리즘 객체 생성합니다.
radialGradation = CRadialGradation()

# 이미지를 입력합니다.
fliSourceImage = CFLImage()
radialGradation.SetSourceImage(fliSourceImage)

# Gradation 영역 설정
flfRegion = CFLCircle[Double]()
radialGradation.SetRadialRegion(flfRegion)

# Gradation 시작 Alpha 설정
mvStartAlpha = CMultiVar[Double]()
radialGradation.SetStartAlpha(mvStartAlpha)

# Gradation 끝 Alpha 설정
mvEndAlpha = CMultiVar[Double]()
radialGradation.SetEndAlpha(mvEndAlpha)

# Gradation 시작 Gradation 설정
mvStartValue = CMultiVar[Double]()
radialGradation.SetStartValue(mvStartValue)

# Gradation 끝 Gradation 설정
mvEndValue = CMultiVar[Double]()
radialGradation.SetEndValue(mvEndValue)

# 알고리즘 실행
radialGradation.Execute()