Signed Square Difference
1 개요
스칼라 또는 이미지와의 Signed Square Difference 연산을 수행하는 알고리즘입니다. 이미지 픽셀값을 스칼라 또는 대응하는 이미지 픽셀값과의 부호 정보를 보존한 차이의 제곱을 구하는 연산입니다.
2 알고리즘 상세 설명
Source |
Scalar Value : (120) |
Result |
 |
 |
Fig. Scalar 값에 따른 결과 비교 (Wrapping Overflow Method)
Fig. Image 값에 따른 결과 비교 (Clamping Overflow Method)
Signed Square Difference 알고리즘은 각 채널에 대해 Signed Square Difference 연산을 수행합니다. 스칼라 연산과 이미지 연산을 지원합니다.
3 파라미터 설정 및 사용 방법
-
오버플로우 처리 방법 설정
-
스칼라 연산 설정
-
이미지 연산 설정
4 예제 코드
Scalar 연산
COperationSignedSquareDifference operationSignedSquareDifference;
CFLImage fliSourceImage;
CFLImage fliDestinationImage;
CMultiVar<double> mulVarScalar;
fliSourceImage.Load("../../ExampleImages/OperationSignedSquareDifference/Gradation.flif");
operationSignedSquareDifference.SetSourceImage(fliSourceImage);
operationSignedSquareDifference.SetDestinationImage(fliDestinationImage);
operationSignedSquareDifference.SetOperationSource(EOperationSource_Scalar);
operationSignedSquareDifference.SetScalarValue(mulVarScalar);
operationSignedSquareDifference.SetOverflowMethod(EOverflowMethod_Wrapping);
operationSignedSquareDifference.Execute();
COperationSignedSquareDifference operationSignedSquareDifference = new COperationSignedSquareDifference();
CFLImage fliSourceImage = new CFLImage();
CFLImage fliDestinationImage = new CFLImage();
CMultiVar<double> mulVarScalar = new CMultiVar<double>();
fliSourceImage.Load("../../ExampleImages/OperationSignedSquareDifference/siamesecat3ch.flif");
operationSignedSquareDifference.SetSourceImage(ref fliSourceImage);
operationSignedSquareDifference.SetDestinationImage(ref fliDestinationImage);
operationSignedSquareDifference.SetOperationSource(EOperationSource.Scalar);
operationSignedSquareDifference.SetScalarValue(mulVarScalar);
operationSignedSquareDifference.SetOverflowMethod(EOverflowMethod.Wrapping);
operationSignedSquareDifference.Execute();
operationSignedSquareDifference = COperationSignedSquareDifference()
fliSourceImage = CFLImage()
fliDestinationImage = CFLImage()
mulVarScalar = CMultiVar[Double]()
fliSourceImage.Load("../../ExampleImages/OperationSignedSquareDifference/siamesecat3ch.flif")
operationSignedSquareDifference.SetSourceImage(fliSourceImage)
operationSignedSquareDifference.SetDestinationImage(fliDestinationImage)
operationSignedSquareDifference.SetOperationSource(EOperationSource.Scalar)
operationSignedSquareDifference.SetScalarValue(mulVarScalar)
operationSignedSquareDifference.SetOverflowMethod(EOverflowMethod.Wrapping)
operationSignedSquareDifference.Execute()
Image 연산
COperationSignedSquareDifference operationSignedSquareDifference;
CFLImage fliSourceImage;
CFLImage fliOperandImage;
CFLImage fliDestinationImage;
fliSourceImage.Load("../../ExampleImages/OperationSignedSquareDifference/Valley1.flif");
fliOperandImage.Load("../../ExampleImages/OperationSignedSquareDifference/Valley2.flif");
operationSignedSquareDifference.SetSourceImage(fliSourceImage);
operationSignedSquareDifference.SetOperandImage(fliOperandImage);
operationSignedSquareDifference.SetDestinationImage(fliDestinationImage);
operationSignedSquareDifference.SetOperationSource(EOperationSource_Image);
operationSignedSquareDifference.SetOverflowMethod(EOverflowMethod_Clamping);
operationSignedSquareDifference.Execute();
COperationSignedSquareDifference operationSignedSquareDifference = new COperationSignedSquareDifference();
CFLImage fliSourceImage = new CFLImage();
CFLImage fliOperandImage = new CFLImage();
CFLImage fliDestinationImage = new CFLImage();
fliSourceImage.Load("../../ExampleImages/OperationSignedSquareDifference/Valley1.flif");
fliOperandImage.Load("../../ExampleImages/OperationSignedSquareDifference/Valley2.flif");
operationSignedSquareDifference.SetSourceImage(ref fliSourceImage);
operationSignedSquareDifference.SetOperandImage(ref fliOperandImage);
operationSignedSquareDifference.SetDestinationImage(ref fliDestinationImage);
operationSignedSquareDifference.SetOperationSource(EOperationSource.Image);
operationSignedSquareDifference.SetOverflowMethod(EOverflowMethod.Clamping);
operationSignedSquareDifference.Execute();
operationSignedSquareDifference = COperationSignedSquareDifference()
fliSourceImage = CFLImage()
fliOperandImage = CFLImage()
fliDestinationImage = CFLImage()
fliSourceImage.Load("../../ExampleImages/OperationSignedSquareDifference/Valley1.flif")
fliOperandImage.Load("../../ExampleImages/OperationSignedSquareDifference/Valley2.flif")
operationSignedSquareDifference.SetSourceImage(fliSourceImage)
operationSignedSquareDifference.SetOperandImage(fliOperandImage)
operationSignedSquareDifference.SetDestinationImage(fliDestinationImage)
operationSignedSquareDifference.SetOperationSource(EOperationSource.Image)
operationSignedSquareDifference.SetOverflowMethod(EOverflowMethod.Clamping)
operationSignedSquareDifference.Execute()