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];
}
}