Arrived at a new frame in a "normal" walk.
Reimplemented from Impala::Core::VideoSet::Listener. Definition at line 86 of file BlackFrameDetect.h. References Impala::Core::Table::TableTem< Col1T, Col2T, Col3T, Col4T, Col5T, Col6T, Col7T, Col8T, Col9T >::Add(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::CH(), ComputeGradient(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::CW(), Impala::Core::Stream::RgbDataSrc::DataPtr(), Impala::Core::Vector::VectorTem< ElemT >::Elem(), Impala::Core::Stream::RgbDataSrc::FrameHeight(), Impala::Core::Stream::RgbDataSrc::FrameNr(), Impala::Core::Stream::RgbDataSrc::FrameWidth(), ILOG_ERROR, Impala::Core::Array::MakeRoi(), mFeatureDim, mStripBorder, mTable, Impala::Core::Array::PixSum(), Impala::Core::Array::RGB2Intensity(), and Impala::Application::DemoCamera2d::sigma. 00087 { 00088 /* get frame */ 00089 Array::Array2dVec3UInt8* im = Array::ArrayCreate<Array::Array2dVec3UInt8> 00090 (src->FrameWidth(), src->FrameHeight(), 0, 0, src->DataPtr(), true); 00091 00092 /* verify image is not null */ 00093 if (!im) { 00094 ILOG_ERROR("No image: fileId=" << fileId); 00095 return; 00096 } 00097 00098 Quid quid = vs->GetQuidFrame(fileId, src->FrameNr()); 00099 00100 // remove the border, if requested 00101 Geometry::Rectangle rect(mStripBorder, mStripBorder, im->CW() - mStripBorder - 1, im->CH() - mStripBorder - 1, true); 00102 Array::Array2dVec3UInt8* imNoBorder = MakeRoi(im, rect); 00103 delete im; 00104 00105 Array2dScalarReal64* imIntensity = 0; 00106 Array::RGB2Intensity(imIntensity, imNoBorder); 00107 delete imNoBorder; 00108 00109 Real64 sigma = 2.0; 00110 Array2dScalarReal64* magnitude = 0; 00111 //Array2dScalarReal64* direction = 0; 00112 ComputeGradient(magnitude, imIntensity, sigma); 00113 //delete direction; 00114 00115 int n = (imIntensity->CW() * imIntensity->CH()); 00116 Real64 avgMagnitude = Array::PixSum(magnitude) / n; 00117 Real64 avgIntensity = Array::PixSum(imIntensity) / n; 00118 00119 Vector::VectorTem<Real64> codebookVector = 00120 Vector::VectorTem<Real64>(mFeatureDim); 00121 codebookVector.Elem(0) = avgIntensity; 00122 codebookVector.Elem(1) = avgMagnitude; 00123 00124 // added by Jun Wu 00125 // bin 0 for color historgram from gray image 00126 codebookVector.Elem(2) = (Real64)0.001; 00127 mTable->Add(quid, codebookVector); 00128 00129 delete magnitude; 00130 delete imIntensity; 00131 00132 //ILOG_INFO("DoneFrame: " << fileId << src); 00133 }
Here is the call graph for this function:
|