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


// KFE.cpp: implementation of the KFE class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "CBVRtestsystem.h" 
#include "KFE.h" 
#include "MyHSV.h" 
#include "MyRGB.h" 
#include "InputDlg.h" 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
KFE::KFE(PGETFRAME g1,int W,int H,int l,int number) 
{ 
	gapgf=g1; 
	m_frameW=W; 
	m_frameH=H; 
	length=l; 
	kf=new int[length]; 
	memset(kf,0,length*sizeof(int)); 
	if (number==1)  
	{ 
		kfe1(); 
	} 
	if (number==2)  
	{ 
		kfe2(); 
	} 
 
} 
 
KFE::~KFE() 
{ 
 
} 
 
//帧平均法提取关键帧 
void KFE::kfe1() 
{ 
	int i,R=0,G=0,B=0,pos,D; 
	long min=100000,max=0; 
	pos=1234; 
	for(i=0;imax)  
		{ 
			max=D; 
			kf[1]=i; 
		} 
	} 
} 
 
//直方图平均法提取关键帧 
void KFE::kfe2() 
{ 
	int i,j,D; 
	long min=100000000,max=0; 
	int HR[256],HG[256],HB[256],R[256],G[256],B[256]; 
	memset(R,0,256*4); 
	memset(G,0,256*4); 
	memset(B,0,256*4); 
	memset(HR,0,256*4); 
	memset(HG,0,256*4); 
	memset(HB,0,256*4);	 
	for(i=0;imax)  
		{ 
			max=D; 
			kf[1]=i; 
		} 
		m_RGBframe.destroy(); 
	}  
	 
} 
 
 
 
//两帧RGB图像象素比较 
float KFE::CompFrameByRGBPixel(MyRGB f1, MyRGB f2) 
{ 
	float total=0; 
	for(int i=0;i