Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

std::vector<Array2dScalarReal64*> Impala::Core::Array::InvWiccest ( Array2dVec3UInt8 *  rgb,
double  derivativeSigma 
) [inline]

Definition at line 47 of file InvWiccest.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().

Referenced by InvWiccest().

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

Here is the call graph for this function:


Generated on Fri Mar 19 10:57:21 2010 for ImpalaSrc by  doxygen 1.5.1