Completed given DB_FILE in a "normal" walk.
Reimplemented from Impala::Core::VideoSet::Listener. Definition at line 52 of file ExportFeatures.h. References Impala::Core::VideoSet::Mpeg7Doc::AddFeature(), Impala::Core::Feature::FeatureDefinition::AsString(), Impala::Core::Stream::RgbDataSrc::FrameRateDen(), Impala::Core::Stream::RgbDataSrc::FrameRateNum(), Impala::Core::Feature::FeatureDefinition::GetName(), Impala::Core::VideoSet::Segmentation::GetNrFramesVideo(), ILOG_ERROR, Impala::MakeString(), mFeatureDef, mFractions, Impala::Core::VideoSet::Mpeg7DocWrite(), mSegmentation, mWalkType, Impala::QUID_CLASS_FRAME, Impala::QuidClass(), Impala::QuidId(), and Impala::Core::Vector::VectorTem< ElemT >::Size(). 00053 { 00054 if ((mSegmentation == 0)) 00055 { 00056 ILOG_ERROR("Need segmentation"); 00057 return; 00058 } 00059 Persistency::FeatureLocator loc(vs->GetLocator(), false, false, 00060 mWalkType, mFeatureDef.AsString(), 00061 vs->GetContainerFile(fileId)); 00062 typedef Feature::FeatureTable FeatureTable; 00063 FeatureTable* table = Persistency::FeatureTableRepository().Get(loc); 00064 if (table == 0) 00065 { 00066 ILOG_ERROR("Unable to find " << mFeatureDef.AsString()); 00067 return; 00068 } 00069 String fileName = vs->GetFile(fileId); 00070 String id = fileName; 00071 int nrFrames = mSegmentation->GetNrFramesVideo(fileId); 00072 int frameRateNum = (src) ? src->FrameRateNum() : 0; 00073 int frameRateDen = (src) ? src->FrameRateDen() : 0; 00074 Mpeg7Doc mp7(id, fileName, nrFrames, mFractions, false, "", "", 00075 frameRateNum, frameRateDen); 00076 for (int i=0 ; i<table->Size() ; i++) 00077 { 00078 Quid quid = table->Get1(i); 00079 if (QuidClass(quid) != QUID_CLASS_FRAME) 00080 ILOG_ERROR("Quid is not a frame"); 00081 int frameNr = QuidId(quid); 00082 String name = "frame_" + MakeString(frameNr); 00083 Feature::FeatureTable::VectorReal64 v = table->Get2(i); 00084 std::vector<double> vec; 00085 for (int j=0 ; j<v.Size() ; j++) 00086 vec.push_back(v[j]); 00087 mp7.AddFeature(mFeatureDef.GetName(), name, frameNr, frameNr, vec); 00088 } 00089 delete table; 00090 Core::VideoSet::Mpeg7DocWrite(&mp7, vs, fileId); 00091 }
Here is the call graph for this function:
|