www.pudn.com > CBVRtest.rar > AL_CF.cpp


// AL_CF.cpp: implementation of the AL_CF class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "CBVRtestsystem.h" 
#include "AL_CF.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
AL_CF::AL_CF(PGETFRAME g1,int W,int H,int l) 
{ 
    gapgf=g1; 
	m_frameW=W; 
	m_frameH=H; 
	length=l; 
 
 
 
} 
 
AL_CF::~AL_CF() 
{ 
 
} 
 
BOOL AL_CF::GetZXD_CF(int FrameNumber, int Point[2]) 
{ 
    m_frame_number=FrameNumber; 
    m_point[0]=Point[0]; 
    m_point[1]=Point[1];  
 	LPBITMAPINFOHEADER lpbiframe1=(LPBITMAPINFOHEADER)AVIStreamGetFrame(gapgf,m_frame_number); 
	m_RGBframe1.rgbinit1(m_frameW,m_frameH,lpbiframe1); 
 
 
    //调用函数图像灰度化 
    m_RGBframe1.From256toGray(m_frameW,m_frameH,lpbiframe1); 
 
 	LPBITMAPINFOHEADER lpbiframe2=(LPBITMAPINFOHEADER)AVIStreamGetFrame(gapgf,m_frame_number+1); 
	m_RGBframe2.rgbinit1(m_frameW,m_frameH,lpbiframe2); 
      
	//调用函数图像灰度化 
     m_RGBframe2.From256toGray(m_frameW,m_frameH,lpbiframe2); 
 
 	//调用函数对图像进行差分并求出质心点,传入参数当前帧的号,返回质心点的坐标 
	 CFandEZ(); 
	 GetZXD(); 
     Point[0]=m_point[0]; 
     Point[1]=m_point[1];  
     return true; 
} 
 
BOOL AL_CF::GetZXD() 
{ 
	 
	int nTemp=0; 
	int nThreshold=20; 
	int i=0,j=0; 
	int Num_Point=0; 
	m_point[0]=0; 
    m_point[1]=0; 
	for (j=0;j nThreshold ? 0:255; 
         m_RGBframe1.G1[i1]=m_RGBframe1.R1[i1]; 
		 m_RGBframe1.B1[i1]=m_RGBframe1.R1[i1]; 
	} 
 
}