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