Definition at line 832 of file ShotSegmenter.h. References BlurImage(), EqualizeHist(), Impala::Core::Stream::RgbDataSrc::FrameHeight(), Impala::Core::Stream::RgbDataSrc::FrameWidth(), Impala::Core::Histogram::MakeHistogram1d(), mBlur, mBlurSigma, mHistEq, mHistNorm, mHistograms, mHistPerFrame, mPyramid, mSrc, mWindowSize, Impala::Core::Histogram::Histogram1dTem< ElemT >::Normalize(), Impala::Core::Geometry::RectanglePyramid::NrLevels(), Impala::Core::Geometry::RectanglePyramid::NrRects(), Impala::Core::Array::ProjectRange(), and Impala::Core::Geometry::RectanglePyramid::Rect(). Referenced by HandleNewFrame(). 00833 { 00834 HistType** tmpHist; 00835 tmpHist = new HistType*[mHistPerFrame]; 00836 //Back up the first frame's histogram pointers 00837 for(int i=0; i<mHistPerFrame ;i++) 00838 tmpHist[i] = mHistograms[i]; 00839 //Shift the rest of the histograms 00840 for(int i=0 ; i<(mWindowSize-1)*mHistPerFrame ; i++) 00841 mHistograms[i] = mHistograms[i+mHistPerFrame]; 00842 00843 for(int i=(mWindowSize-1)*mHistPerFrame; i<mWindowSize*mHistPerFrame ;i++) 00844 mHistograms[i]=tmpHist[i-(mWindowSize-1)*mHistPerFrame]; 00845 delete [] tmpHist; 00846 00847 Array::Array2dVec3Real64* srcWrap = 00848 Array::ArrayCreate<Array::Array2dVec3Real64>(mSrc->FrameWidth(), 00849 mSrc->FrameHeight(), 00850 0, 0); 00851 00852 Array::MakeFromData2<Array::Array2dVec3Real64,Array::Array2dVec3UInt8>(srcWrap,data); 00853 00855 //OOO 00856 //Array2dVec3Real64* srcOOO=0; 00857 //ColorSpace(srcOOO,srcWrap,Element::RGB,Element::OOO); 00858 00859 Array::Array2dScalarReal64* srcO1 = 0; 00860 Array::Array2dScalarReal64* srcO2 = 0; 00861 Array::Array2dScalarReal64* srcO3 = 0; 00862 00863 Array::ProjectRange(srcO1,srcWrap,1); 00864 Array::ProjectRange(srcO2,srcWrap,2); 00865 Array::ProjectRange(srcO3,srcWrap,3); 00866 00867 if (mBlur) 00868 { 00869 BlurImage(srcO1,mBlurSigma); 00870 BlurImage(srcO2,mBlurSigma); 00871 BlurImage(srcO3,mBlurSigma); 00872 } 00873 00874 int k = (mWindowSize-1)*mHistPerFrame-1; 00875 00876 for(int i=0;i<mPyramid.NrLevels();i++){ 00877 for (int j=0;j<mPyramid.NrRects(i);j++){ 00878 00879 MakeHistogram1d(mHistograms[++k],srcO1,mPyramid.Rect(i,j)); 00880 if(mHistEq) 00881 EqualizeHist(mHistograms[k]); 00882 if(mHistNorm) 00883 mHistograms[k]->Normalize(); 00884 00885 MakeHistogram1d(mHistograms[++k],srcO2,mPyramid.Rect(i,j)); 00886 if(mHistEq) 00887 EqualizeHist(mHistograms[k]); 00888 if(mHistNorm) 00889 mHistograms[k]->Normalize(); 00890 00891 MakeHistogram1d(mHistograms[++k],srcO3,mPyramid.Rect(i,j)); 00892 if(mHistEq) 00893 EqualizeHist(mHistograms[k]); 00894 if(mHistNorm) 00895 mHistograms[k]->Normalize(); 00896 } 00897 } 00898 00899 delete srcWrap; 00900 //delete srcOOO; 00901 00902 delete srcO1; 00903 delete srcO2; 00904 delete srcO3; 00905 }
Here is the call graph for this function:
|