Arrived at a new frame in a "normal" walk.
Reimplemented from Impala::Core::VideoSet::Listener. Definition at line 78 of file BlackFrameProc.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(), mStripBorder, mTable, Impala::Core::Array::PixSum(), Impala::Core::Array::RGB2Intensity(), and Impala::Application::DemoCamera2d::sigma. 00079 { 00080 /* get frame */ 00081 Array::Array2dVec3UInt8* im = Array::ArrayCreate<Array::Array2dVec3UInt8> 00082 (src->FrameWidth(), src->FrameHeight(), 0, 0, src->DataPtr(), true); 00083 00084 /* verify image is not null */ 00085 if (!im) { 00086 ILOG_ERROR("No image: fileId=" << fileId); 00087 return; 00088 } 00089 00090 Quid quid = vs->GetQuidFrame(fileId, src->FrameNr()); 00091 00092 // remove the border, if requested 00093 Geometry::Rectangle rect(mStripBorder, mStripBorder, im->CW() - mStripBorder - 1, im->CH() - mStripBorder - 1, true); 00094 Array::Array2dVec3UInt8* imNoBorder = MakeRoi(im, rect); 00095 delete im; 00096 00097 Array2dScalarReal64* imIntensity = 0; 00098 RGB2Intensity(imIntensity, imNoBorder); 00099 delete imNoBorder; 00100 00101 Real64 sigma = 2.0; 00102 Array2dScalarReal64* magnitude = 0; 00103 //Array2dScalarReal64* direction = 0; 00104 ComputeGradient(magnitude, imIntensity, sigma); 00105 //delete direction; 00106 00107 int n = (imIntensity->CW() * imIntensity->CH()); 00108 Real64 avgMagnitude = PixSum(magnitude) / n; 00109 Real64 avgIntensity = PixSum(imIntensity) / n; 00110 00111 Vector::VectorTem<Real64> codebookVector = Vector::VectorTem<Real64>(2); 00112 codebookVector.Elem(0) = avgIntensity; 00113 codebookVector.Elem(1) = avgMagnitude; 00114 mTable->Add(quid, codebookVector); 00115 00116 delete magnitude; 00117 delete imIntensity; 00118 }
Here is the call graph for this function:
|