www.pudn.com > PrimeBackgroundDetection.rar > PrimeBackgroundDetection.h


// BKDetection.h: interface for the CBKDetection class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_BKDETECTION_H__73BBCC0D_149F_458B_BB0C_E2DF2BEBFF07__INCLUDED_) 
#define AFX_BKDETECTION_H__73BBCC0D_149F_458B_BB0C_E2DF2BEBFF07__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include "TypeDef.h" 
#include "BKProcess.h" 
 
class CBKDetection   
{ 
public: 
	CBKDetection(); 
	virtual ~CBKDetection(); 
	DWORD BKParamInit  ( DWORD dwImageWidth, DWORD dwImageHeight ); 
	void  BKUpdate     ( LPBYTE lpThisBits, LPBYTE lpPreBits, 
					     LPBYTE lpBKBits, LPBYTE lpMaskBits ); 
	BYTE  ObjectSeg    ( LPBYTE lpThisBits, LPBYTE lpPreBits, 
					     LPBYTE lpBKBits, LPBYTE lpMaskBits ); 
 
private: 
	void  DeleteMem      (); 
	void  CreateGausTab_2(); 
	void  CreateGausTab_3(); 
	void  GetDoubleVar   ( BYTE &byTripleVar ); 
	void  GetTripleVar   ( BYTE &byTripleVar ); 
 
	void  ObjBKUpdate( LPBYTE lpBKBits, LPBYTE lpMaskBits ); 
 
public: 
	DWORD  m_dwUpdateCount_1, 
		   m_dwUpdateCount_2, 
		   m_dwUpdateCount_3, 
		   m_dwUpdateCount_4; 
 
private: 
	LPBYTE m_pMedFilter; 
	LPBYTE m_pExtremumBits; 
	LPBYTE m_pAdvBKBits; 
	LPBYTE m_pUnchgCount;  
	WORD  *m_pUnchgSum; 
	DWORD *m_pDiffHist; 
 
	DWORD  m_dwGausTab[ TRIPLE_GAUS_VAR ][ MAX_GAUS_WDTH ]; 
	ULONGLONG m_ulGausPowerSum[ TRIPLE_GAUS_VAR ]; 
	DWORD  m_dwImageWidth, 
		   m_dwImageHeight, 
		   m_dwRowBytes, 
		   m_dwMidBytes; 
	BYTE   m_byThreshold; 
	BOOL   m_bInitStatus; 
 
}; 
 
#endif // !defined(AFX_BKDETECTION_H__73BBCC0D_149F_458B_BB0C_E2DF2BEBFF07__INCLUDED_)