Scaled Divide
1 개요
이미지 혹은 Scalar 값을 사용하여 Scaled Divide 연산을 수행하는 알고리즘입니다.
2 알고리즘 상세 설명
Scaled Divide의 연산은 다음 식을 활용합니다.
변수 MAX의 값은 a 변수의 최댓값을 뜻합니다.
Source Value | Operand Value | Destination Value |
---|---|---|
![]() |
![]() |
![]() |
Fig. Source, Operand and Destination values of Scaled Divide
a가 float 혹은 double인 경우 MAX를 1로 설정하여 일반적인 나누기 연산을 실행합니다.
Source Value | Operand Value | Destination Value |
---|---|---|
![]() |
![]() |
![]() |
Fig. Floating Source, Operand and Destination values of Scaled Divide
나누는 값이 0이고 a가 float/double이 아닌 경우 a가 양수이면 최대 값, a가 음수이면 최소 값, a가 0이면 0을 반환합니다.
Source Value | Operand Value | Destination Value |
---|---|---|
![]() |
![]() |
![]() |
Fig. Source, Zero Operand and Destination values of Scaled Divide
3 예제 코드
Scalar 연산
// 객체 생성
COperationScaledDivide operationScaledDivide;
// 입력 이미지
CFLImage fliSourceImage;
// 출력 이미지
CFLImage fliDestinationImage;
// Scalar 값
CMultiVar<double> mulVarScalar;
// 입력 이미지 설정
operationScaledDivide.SetSourceImage(fliSourceImage);
// 출력 이미지 설정
operationScaledDivide.SetDestinationImage(fliDestinationImage);
// 연산 방식 설정
operationScaledDivide.SetOperationSource(EOperationSource_Scalar);
// Scalar 값 설정
operationScaledDivide.SetScalarValue(mulVarScalar);
// 알고리즘 동작
operationScaledDivide.Execute();
Image 연산
// 객체 생성
COperationScaledDivide operationScaledDivide;
// 입력 이미지
CFLImage fliSourceImage;
// Operand 이미지
CFLImage fliOperandImage;
// 출력 이미지
CFLImage fliDestinationImage;
// 입력 이미지 설정
operationScaledDivide.SetSourceImage(fliSourceImage);
// Operand 이미지 설정
operationScaledDivide.SetOperandImage(fliOperandImage);
// 출력 이미지 설정
operationScaledDivide.SetDestinationImage(fliDestinationImage);
// 연산 방식 설정
operationScaledDivide.SetOperationSource(EOperationSource_Image);
// 알고리즘 동작
operationScaledDivide.Execute();