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