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

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

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:


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