Linear

1 개요

이미지를 스칼라 또는 다른 이미지와 Linear 연산을 수행하는 알고리즘입니다. OperationMultiply, OperationAdd를 정해진 순서에 맞게 순차적으로 연산합니다.

2 알고리즘 상세 설명

이미지를 스칼라 또는 다른 이미지와 각 Channel 마다 Linear 연산을 수행합니다.

Source Image Operand1 Image Operand2 Image Destination Value
Source Image Operation1 Image Operation2 Image Destination Image
Fig. Constant - Coefficient(Add - Multiply) 결과

Source Image Operand1 Image Operand2 Image Destination Value
Source Image Operation1 Image Operation2 Image Destination Image
Fig. Coefficient - Constant(Multiply - Add) 결과

3 파라미터 설명

멤버함수 파라미터 설 명
SetOperationOrder EOperationOrder eOperationOrder IN 연산 순서를 설정합니다.

4 예제 코드

Scalar 연산

COperationLinear operationLinear;

CFLImage fliSourceImage;
CFLImage fliDestinationImage;
CMultiVar<double> mulVarScalar1, mulVarScalar2;

operationLinear.SetSourceImage(fliSourceImage);
operationLinear.SetDestinationImage(fliDestinationImage);
operationLinear.SetOperationSource(EOperationSource_Scalar);
operationLinear.SetOperationOrder(EOperationOrder_CoefficientConstant);
operationLinear.SetScalarValue(mulVarScalar1, mulVarScalar2);

operationLinear.Execute();
COperationLinear algoLinear = new COperationLinear();
CFLImage fliSourceImage = new CFLImage();
CFLImage fliDestinationImage = new CFLImage();
CMultiVar<double> mvScalar1 = new CMultiVar<double>(2);
CMultiVar<double> mvScalar2 = new CMultiVar<double>(2);
algoLinear.SetScalarValue(mvScalar1, mvScalar2);
algoLinear.SetSourceImage(ref fliSourceImage);	
algoLinear.SetDestinationImage(ref fliDestinationImage);
algoLinear.SetOperationSource(EOperationSource.Scalar);
algoLinear.SetOperationOrder(EOperationOrder.CoefficientConstant);
algoLinear.Execute();

Image 연산

COperationLinear operationLinear;

CFLImage fliSourceImage;
CFLImage fliOperand1Image;
CFLImage fliOperand2Image;
CFLImage fliDestinationImage;

operationLinear.SetSourceImage(fliSourceImage);
operationLinear.SetOperandImage(fliOperandImage1);
operationLinear.SetOperandImage2(fliOperandImage2);
operationLinear.SetDestinationImage(fliDestinationImage);
operationLinear.SetOperationOrder(EOperationOrder_CoefficientConstant);
operationLinear.SetOperationSource(EOperationSource_Image);

operationLinear.Execute();
COperationLinear algoLinear = new COperationLinear();
CFLImage fliSourceImage = new CFLImage();
CFLImage fliDestinationImage = new CFLImage();
CFLImage fliOperandImage = new CFLImage();
CFLImage fliOperandImage2 = new CFLImage();

algoLinear.SetSourceImage(ref fliSourceImage);	
algoLinear.SetDestinationImage(ref fliDestinationImage);
algoLinear.SetOperandImage(ref fliOperandImage);	
algoLinear.SetOperandImage2(ref fliOperandImage2);
algoLinear.SetOperationSource(EOperationSource.Image);
algoLinear.SetOperationOrder(EOperationOrder.CoefficientConstant);
algoLinear.Execute();