Linear
1 개요
이미지를 스칼라 또는 다른 이미지와 Linear 연산을 수행하는 알고리즘입니다.
OperationMultiply, OperationAdd를 정해진 순서에 맞게 순차적으로 연산합니다.
2 알고리즘 상세 설명
이미지를 스칼라 또는 다른 이미지와 각 Channel 마다 Linear 연산을 수행합니다.
Source Image |
Operand1 Image |
Operand2 Image |
Destination Value |
 |
 |
 |
 |
Fig. Constant - Coefficient(Add - Multiply) 결과
Source Image |
Operand1 Image |
Operand2 Image |
Destination Value |
 |
 |
 |
 |
Fig. Coefficient - Constant(Multiply - Add) 결과
3 파라미터 설명
멤버함수 |
파라미터 |
설 명 |
SetOperationOrder |
EOperationOrder |
eOperationOrder |
IN |
연산 순서를 설정합니다. |
eOperationOrder
- Default Value : EOperationOrder_ConstantCoefficient
- EOperationOrder_ConstantCoefficient : Add - Multiply
- EOperationOrder_CoefficientConstant : Multiply - Add
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();
algoLinear = COperationLinear()
fliSourceImage = CFLImage()
fliDestinationImage = CFLImage()
mvScalar1 = CMultiVar[Double](2)
mvScalar2 = CMultiVar[Double](2)
algoLinear.SetScalarValue(mvScalar1, mvScalar2)
algoLinear.SetSourceImage(fliSourceImage)
algoLinear.SetDestinationImage(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();
algoLinear = COperationLinear()
fliSourceImage = CFLImage()
fliDestinationImage = CFLImage()
fliOperandImage = CFLImage()
fliOperandImage2 = CFLImage()
algoLinear.SetSourceImage(fliSourceImage)
algoLinear.SetDestinationImage(fliDestinationImage)
algoLinear.SetOperandImage(fliOperandImage)
algoLinear.SetOperandImage2(fliOperandImage2)
algoLinear.SetOperationSource(EOperationSource.Image)
algoLinear.SetOperationOrder(EOperationOrder.CoefficientConstant)
algoLinear.Execute()