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

void Impala::Core::Feature::VisSem::ComputeFeaturesPixelSet ( InvSetType invSet,
int  p,
Quid  quid 
) [inline, private]

Definition at line 471 of file VisSem.h.

References Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Add(), Impala::Core::Feature::FeatureTableSet::Add(), Impala::Core::Vector::Avg(), ComputeRegionDescriptor(), ComputeRegionSimilarity(), Impala::Core::Vector::Concat(), Impala::Core::Feature::FeatureTableSet::Delete(), DoCodebook(), DoSpatialPyramid(), DoUNC(), Impala::Core::Vector::ElemAvg(), Impala::Core::Feature::Computor::GetFeatureTable(), Impala::Core::Feature::Computor::GetProtoFeatureTables(), Impala::Core::Feature::FeatureTableSet::GetTable(), Impala::Core::Feature::Computor::IsClusterBased(), Impala::Core::Histogram::MakeHistogram1dSet(), Impala::Core::Vector::Max(), mDoCodebook, mDoUNC, Impala::Core::Feature::Computor::mLazebnikPyramid, Impala::Core::Feature::Computor::mPyramid, NewHistSet(), Impala::Core::Geometry::RectanglePyramid::NrLevels(), Impala::Core::Geometry::RectanglePyramid::NrRects(), Impala::Core::Geometry::RectanglePyramid::Rect(), Impala::Core::Vector::VectorTem< ElemT >::Size(), and Impala::Core::Geometry::RectanglePyramidPerDim::TotalNrRects().

Referenced by ComputeFeatures().

00472     {
00473         HistSetType* hSet = NewHistSet();
00474         for (int l=0 ; l<mPyramid.NrLevels() ; l++)
00475         {
00476             std::vector<FeatureTable*> protoTabs = GetProtoFeatureTables(p, l);
00477             if (!IsClusterBased())
00478                 protoTabs = GetProtoFeatureTables(p);
00479             FeatureTableSet regionSim;
00480             FeatureTableSet regionSimSP;
00481             for (int t=0 ; t<protoTabs.size() ; t++)
00482             {
00483                 int nrCodeWords = (IsClusterBased()) ? protoTabs[t]->Size() : 1;
00484                 FeatureDefinition def("sim");
00485                 regionSim.Add(new FeatureTable(def, 200, nrCodeWords));
00486                 nrCodeWords *= mLazebnikPyramid.TotalNrRects();
00487                 regionSimSP.Add(new FeatureTable(def, 200, nrCodeWords));
00488             }
00489 
00490             for (int r=0 ; r<mPyramid.NrRects(l) ; r++)
00491             {
00492                 Geometry::Rectangle rect = mPyramid.Rect(l, r);
00493                 Histogram::MakeHistogram1dSet(hSet, invSet, rect, true);
00494 
00495                 VectorReal64 exVec = ComputeRegionDescriptor(hSet);
00496 
00497                 for (int t=0 ; t<protoTabs.size() ; t++)
00498                 {
00499                     VectorReal64 sVec = ComputeRegionSimilarity(exVec,
00500                                                                 protoTabs[t]);
00501                     VectorReal64 regionVec;
00502                     if (IsClusterBased())
00503                     {
00504                         regionVec = sVec;
00505                     }
00506                     else
00507                     {   // average all annos (kernel codebook)
00508                         regionVec = VectorReal64(1);
00509                         regionVec[0] = Vector::ElemAvg(sVec, 0, 0, -1);
00510                     }
00511                     regionSim.GetTable(t)->Add(0, regionVec);
00512                 }
00513             }
00514 
00515             if (mDoUNC)
00516                 DoUNC(&regionSim, l);
00517             if (mDoCodebook)
00518                 DoCodebook(&regionSim, l);
00519             DoSpatialPyramid(&regionSim, l, &regionSimSP);
00520 
00521             for (int t=0 ; t<protoTabs.size() ; t++)
00522             {
00523                 FeatureTable* simTab = regionSimSP.GetTable(t);
00524                 VectorReal64 vMax;
00525                 Vector::Max(&vMax, simTab->GetColumn2(), simTab->Size(), 0);
00526 
00527                 VectorReal64 vAvg;
00528                 Vector::Avg(&vAvg, simTab->GetColumn2(), simTab->Size(), 0);
00529                 FeatureDefinition def = protoTabs[t]->GetFeatureDefinition();
00530                 FeatureTable* tab = GetFeatureTable(def, l);
00531                 tab->Add(quid, Vector::Concat(vMax, vAvg));
00532             }
00533             regionSim.Delete();
00534             regionSimSP.Delete();
00535         }
00536         delete hSet;
00537     }

Here is the call graph for this function:


Generated on Fri Mar 19 11:11:17 2010 for ImpalaSrc by  doxygen 1.5.1