Definition at line 44 of file InvWCxy.h. References Add(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::BH(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::BW(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::CH(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::CW(), Div(), InvCompDer(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::mCH, Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::mCW, Norm2Sqr(), Impala::Core::Array::Pattern::PatM9N4PixOp(), Rgb2Ooo(), and Sub(). 00045 { 00046 std::vector<Array2dScalarReal64*> result; 00047 result.resize(13); 00048 for(int i=0 ; i<13 ; ++i) 00049 result[i] = new Array2dScalarReal64(rgb->CW(), rgb->CH(), rgb->BW(), 00050 rgb->BH()); 00051 00052 // convert to ooo 00053 Array2dVec3Real64* ooo = new Array2dVec3Real64(rgb->mCW, rgb->mCH, 0, 0); 00054 Rgb2Ooo(ooo, rgb); 00055 std::vector<Array2dScalarReal64*> listDer = InvCompDer(ooo, derivativeSigma, 00056 3); 00057 delete ooo; 00058 00059 // compute Wx and Wy 00060 Div(result[1], listDer[1], listDer[0]); 00061 Div(result[3], listDer[2], listDer[0]); 00062 00063 // compute {Cl,Cll}{x,y} 00064 Trait::M9N4poCxy<Array2dScalarReal64, Array2dScalarReal64> mnpoConFeat; 00065 Pattern::PatM9N4PixOp(result[5], result[7], result[9], result[11], 00066 listDer[0], listDer[1], listDer[2], 00067 listDer[3], listDer[4], listDer[5], 00068 listDer[6], listDer[7], listDer[8], mnpoConFeat); 00069 00070 // compute the rest 00071 Norm2Sqr(result[0], listDer[1], listDer[2]); //gradient 00072 Add(result[ 2], result[1], result[3]); //W 45 00073 Sub(result[ 4], result[1], result[3]); //W 135 00074 Add(result[ 6], result[5], result[7]); //Cl 45 00075 Sub(result[ 8], result[5], result[7]); //Cl 135 00076 Add(result[10], result[9], result[11]); //Cll 45 00077 Sub(result[12], result[9], result[11]); //Cll 135 00078 00079 for(i=0 ; i<listDer.size() ; i++) 00080 delete listDer[i]; 00081 00082 return result; 00083 }
Here is the call graph for this function:
|