?? aigesture.h
字號:
// AIGesture.h: interface for the CAIGesture class.
//編寫人:蘇樹慶
//類別:手勢識別
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_AIGESTURE_H__E6372192_B4B6_4032_8C95_60C2908C9C59__INCLUDED_)
#define AFX_AIGESTURE_H__E6372192_B4B6_4032_8C95_60C2908C9C59__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "GestureStruct.h"
class CAIGesture
{
public:
CAIGesture();
virtual ~CAIGesture();
public:
void SkinDetect(IplImage* src,IplImage* dst);
//膚色檢測,其中src為輸入圖像,dst為輸出圖像
void FindBigContour(IplImage* src,CvSeq* (&contour),CvMemStorage* storage);
//求最大的輪廓,src為輸入圖像,contour是輸出輪廓,storage為opencv一個內(nèi)存結(jié)構(gòu)
void ComputeCenter(CvSeq* (&contour),CvPoint& center,float &radius);
//計算機(jī)出手勢的中心,contour為輸入輪廓,center為輸出中心,radius為輸出半徑
void GetFeature(IplImage* src,
CvPoint& center,
float radius,
float angle[FeatureNum][10],
float anglecha[FeatureNum][10],
float count[FeatureNum]);
//提取手勢的特征,src為輸入圖像,center為輸入中心,radius為輸入半徑,angle,anglecha,count為輸出特征
void OneGestureTrain(CString GesturePath,CvFileStorage *fs,GestureStruct gesture);
//對單類圖像進(jìn)行訓(xùn)練,GesturePath為輸入手勢訓(xùn)練文件夾,fs為一個文件存儲器,gesture是一個手勢結(jié)構(gòu)
void Train();
//訓(xùn)練,其中FolderPath為訓(xùn)練樣本的文件夾路徑
void Recognise(IplImage* src,CString& result);
//識別,src為輸入圖像,result為輸出結(jié)果
void Follow(IplImage* src,CvRect& track_window,CvBox2D &track_box);
//手勢跟蹤,src為輸入圖像,track_window為一個跟蹤矩形,track_box為一個輸入?yún)?shù),目前沒用上,可能以后會用上
void RecogniseSeq(CvPoint pt[8],float width,float height,CString &result);
//對一個序列進(jìn)行識別,pt[8]是輸入的8個點,result為輸出的結(jié)果,flag為判斷是否為第一次,因為只有兩次識別才認(rèn)為是命令
void ColorRegulate(IplImage* src,IplImage* dst);
//進(jìn)行顏色校正,不過效果好像不是很好,src為輸入圖像,dst為輸出圖像
void EqualImage(IplImage* src,IplImage*dst);
//直方圖均衡化,src為輸入圖像,dst為輸出圖像
void SaveImage(IplImage* src);
//保存圖像用以訓(xùn)練
void RecogniseResult(CString str[8],CString &result);
//提取在str[8]中出現(xiàn)次數(shù)大于6的字符串保存到result中;
/*下面程序段作為備用,目前還沒有得到應(yīng)用*/
void CalcHist(IplImage* src,CvRect &rect,CvHistogram* (&hist));
//計算rect內(nèi)的膚色部分的直方圖
void Follow(IplImage* src,CvRect& track_window,CvHistogram* &hist,BOOL& Flag);
//對手勢進(jìn)行跟蹤
void SaveForTrain(IplImage* src,CvPoint pt[8],CString &result);
//對一個點的序列進(jìn)行保存,可以訓(xùn)練,可以用HMM模型試一下,不過,HMM模型看不出方向,應(yīng)該指明方向
void Location(IplImage* src[8],CRect& rect);
};
#endif // !defined(AFX_AIGESTURE_H__E6372192_B4B6_4032_8C95_60C2908C9C59__INCLUDED_)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -