亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? handvu_cintf.cpp

?? tracciatore di mani con webcam
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// HandVu_Cintf.cpp: C interface to the C++ classes in HandVu.cpp//#include "Common.h"#include "HandVu.hpp"#include "HandVu.h"#include "GestureServer.h"#if defined(WIN32)#if defined(GetMessage)#undef GetMessage#endif#include <time.h>#define CLOCKS_PER_USEC ((double)(CLOCKS_PER_SEC)/1000000.0)class RefClockWindows : public RefClock {public:  virtual RefTime GetCurrentTimeUsec() const;};RefTime RefClockWindows::GetCurrentTimeUsec() const{  clock_t ct = clock();  return (RefTime) (ct/CLOCKS_PER_USEC);}#define RefClockArch RefClockWindows#else //WIN32#define CLOCKS_PER_USEC ((double)(CLOCKS_PER_SEC)/1000000.0)class RefClockLinux : public RefClock {public:  virtual RefTime GetCurrentTimeUsec() const;};RefTime RefClockLinux::GetCurrentTimeUsec() const{  clock_t ct = clock();  return (RefTime) (ct/CLOCKS_PER_USEC);}#define RefClockArch RefClockLinux#endif //WIN32class DisplayCallbackCintf : public DisplayCallback { public:  DisplayCallbackCintf(void (*cb)(IplImage* img, hvAction action)) :    m_cb(cb) {}  virtual void Display(IplImage* img, HandVu::HVAction action); protected:  void (*m_cb)(IplImage*, hvAction);};void DisplayCallbackCintf::Display(IplImage* img, HandVu::HVAction action){  CV_FUNCNAME( "hvDisplayCallback" ); // declare cvFuncName  __BEGIN__;  hvAction act;  switch (action) {  case HandVu::HV_INVALID_ACTION:    act = HV_INVALID_ACTION; break;  case HandVu::HV_PROCESS_FRAME:    act = HV_PROCESS_FRAME; break;  case HandVu::HV_SKIP_FRAME:    act = HV_SKIP_FRAME; break;  case HandVu::HV_DROP_FRAME:    act = HV_DROP_FRAME; break;  default:    CV_ERROR(CV_StsError, "unknown HVAction code");  }    m_cb(img, act);  __END__;}typedef GestureServer* GestureServerPtr;vector<GestureServerPtr> g_pservers;HandVu* g_pHandVu = NULL;RefClockArch* g_pClock = NULL;DisplayCallbackCintf* g_displayCallback = NULL;void hvInitialize(int image_width, int image_height){  CV_FUNCNAME( "hvInitialize" ); // declare cvFuncName  __BEGIN__;  if (image_width<0 || image_height<0) {    CV_ERROR(CV_BadImageSize, "negative image width or height");  }  if (g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu already initialized");  }  try {    g_pHandVu = new HandVu();    g_pClock = new RefClockArch();    g_pHandVu->Initialize(image_width, image_height, g_pClock, NULL);  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}void hvUninitialize(){  CV_FUNCNAME( "hvUninitialize" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    g_pHandVu->~HandVu();    g_pHandVu = NULL;    delete g_pClock;    g_pClock = NULL;    if (g_displayCallback) {      delete g_displayCallback;    }    // gesture servers    for (int i=0; i<(int)g_pservers.size(); i++) delete g_pservers[i];    g_pservers.clear();  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}void hvLoadConductor(const string& filename){  CV_FUNCNAME( "hvLoadConductor" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    g_pHandVu->LoadConductor(filename);  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}bool hvConductorLoaded(){  CV_FUNCNAME( "hvConductorLoaded" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    return g_pHandVu->ConductorLoaded();  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}void hvStartRecognition(int obj_id){  CV_FUNCNAME( "hvStartRecognition" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    g_pHandVu->StartRecognition(obj_id);  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}void hvStopRecognition(int obj_id){  CV_FUNCNAME( "hvStopRecognition" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    g_pHandVu->StopRecognition(obj_id);  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}hvAction hvProcessFrame(IplImage* inOutImage, IplImage* rightImage){  CV_FUNCNAME( "hvProcessFrame" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    RefTime t = g_pClock->GetCurrentTimeUsec();    GrabbedImage gi(inOutImage, t, -1);    HandVu::HVAction action = g_pHandVu->ProcessFrame(gi, rightImage);    switch (action) {      case HandVu::HV_INVALID_ACTION:        return HV_INVALID_ACTION;      case HandVu::HV_PROCESS_FRAME:        return HV_PROCESS_FRAME;      case HandVu::HV_SKIP_FRAME:        return HV_SKIP_FRAME;      case HandVu::HV_DROP_FRAME:        return HV_DROP_FRAME;      default:        CV_ERROR(CV_StsError, "unknown HandVu::HVAction");    }  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}bool hvIsActive(){  CV_FUNCNAME( "hvIsActive" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    bool active = g_pHandVu->IsActive();    return active;  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}void hvAsyncSetup(int num_buffers, void (*cb)(IplImage* img, hvAction action)){  CV_FUNCNAME( "hvAsyncSetup" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    if (g_displayCallback) {      delete g_displayCallback;    }    g_displayCallback = new DisplayCallbackCintf(cb);    g_pHandVu->AsyncSetup(num_buffers, g_displayCallback);      } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}void hvAsyncGetImageBuffer(IplImage** pImage, int* pBufferID){  CV_FUNCNAME( "hvAsyncGetImageBuffer" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    g_pHandVu->AsyncGetImageBuffer(pImage, pBufferID);  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}void hvAsyncProcessFrame(int bufferID){  CV_FUNCNAME( "hvAsyncProcessFrame" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    RefTime t = g_pClock->GetCurrentTimeUsec();    g_pHandVu->AsyncProcessFrame(bufferID, t);  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}void hvGetState(int obj_id, hvState& state){  CV_FUNCNAME( "hvGetState" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    HVState hsta;    g_pHandVu->GetState(obj_id, hsta);    state.obj_id = hsta.m_obj_id;    state.tracked = hsta.m_tracked;    state.recognized = hsta.m_recognized;    state.center_xpos = hsta.m_center_xpos;    state.center_ypos = hsta.m_center_ypos;    state.scale = hsta.m_scale;    state.posture = hsta.m_posture;    state.tstamp = hsta.m_tstamp;  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}void hvSetDetectionArea(int left, int top, int right, int bottom){  CV_FUNCNAME( "hvSetDetectionArea" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    g_pHandVu->SetDetectionArea(left, top, right, bottom);  } catch (HVException& hve) {    CV_ERROR(CV_StsError, hve.GetMessage().c_str());  }  __END__;}void hvGetDetectionArea(int* pLeft, int* pTop, int* pRight, int* pBottom){  CV_FUNCNAME( "hvAsyncProcessFrame" ); // declare cvFuncName  __BEGIN__;  if (!g_pHandVu) {    CV_ERROR(CV_StsError, "HandVu not initialized");  }  try {    CQuadruple area;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区精品3399| 欧美三级一区二区| 2021国产精品久久精品| 蜜臀av在线播放一区二区三区| 欧洲精品一区二区三区在线观看| 一区二区视频在线| 欧美日本在线看| 精品中文字幕一区二区小辣椒 | 免费高清在线视频一区·| 欧美色图免费看| 毛片一区二区三区| 国产日韩v精品一区二区| 一本色道久久综合亚洲91| 亚洲成av人片www| 久久在线观看免费| 色综合久久六月婷婷中文字幕| 亚洲一区二区美女| 久久久久久久久久久黄色| 色综合久久久久综合体桃花网| 天使萌一区二区三区免费观看| 91精品国产乱| av午夜一区麻豆| 婷婷综合久久一区二区三区| 99国产精品国产精品毛片| 日韩毛片在线免费观看| 91精品国产综合久久精品| 97久久久精品综合88久久| 久久电影国产免费久久电影 | 91尤物视频在线观看| 亚洲大片在线观看| 欧美成人精精品一区二区频| 黄色精品一二区| 美日韩一级片在线观看| 亚洲午夜国产一区99re久久| 国产清纯在线一区二区www| 欧美性xxxxxx少妇| 日本精品裸体写真集在线观看| 国产福利一区二区三区视频在线| 五月婷婷久久综合| 亚洲欧美偷拍三级| 中文字幕人成不卡一区| 久久久综合激的五月天| 精品噜噜噜噜久久久久久久久试看| 欧美综合一区二区| 精品视频一区二区三区免费| 欧美色图激情小说| 欧美日韩视频在线一区二区| 欧美日韩国产一二三| 日本韩国欧美一区| 欧美日韩国产小视频在线观看| 91福利在线观看| 欧美高清视频www夜色资源网| 欧美在线不卡视频| 91精品中文字幕一区二区三区| 欧美一级二级在线观看| xvideos.蜜桃一区二区| 国产精品美女久久久久av爽李琼| 欧美激情在线一区二区三区| 1区2区3区精品视频| 亚洲一区影音先锋| 激情综合色综合久久| 国产成人无遮挡在线视频| 99久久婷婷国产综合精品电影| 色八戒一区二区三区| 欧美日韩精品一区二区三区四区| 日韩午夜在线播放| 国产欧美日韩精品一区| 日韩影院精彩在线| 国产a区久久久| 欧美色图第一页| 国产精品日产欧美久久久久| 亚洲aaa精品| 成人精品亚洲人成在线| 日韩欧美一卡二卡| 亚洲日本丝袜连裤袜办公室| 欧美aaaaaa午夜精品| 在线观看不卡视频| 中文一区在线播放| 久久国产麻豆精品| 欧美另类久久久品| 亚洲美女少妇撒尿| 成人小视频免费在线观看| 欧美福利一区二区| 伊人婷婷欧美激情| 91一区二区三区在线观看| 国产亚洲人成网站| 久久精品国产亚洲5555| 欧美美女喷水视频| 亚洲电影在线播放| 欧美三级电影精品| 亚洲曰韩产成在线| 91极品视觉盛宴| 一区二区三区在线视频免费观看| 欧美午夜电影网| 在线观看亚洲精品视频| 国产校园另类小说区| 久久精工是国产品牌吗| 91精品视频网| 蜜臀91精品一区二区三区| 91精品在线麻豆| 美女精品一区二区| 欧美午夜精品电影| 视频一区欧美日韩| 国产三区在线成人av| 国产成人精品三级| 亚洲精品va在线观看| 一本色道久久综合亚洲91| 亚洲特黄一级片| 欧美日韩中文字幕一区| 久久精品理论片| 国产精品久久久久桃色tv| 91丨九色porny丨蝌蚪| 亚洲一区在线电影| 91精品国产综合久久小美女| 国产在线精品一区在线观看麻豆| 国产色爱av资源综合区| 色中色一区二区| 激情六月婷婷综合| 成人免费在线观看入口| 欧美一区二区三区四区久久| 国产成人免费视频网站高清观看视频 | 亚洲美女偷拍久久| 偷拍一区二区三区| 欧美性色综合网| 洋洋成人永久网站入口| 在线一区二区三区四区| 日韩精品一级中文字幕精品视频免费观看 | 99国产精品视频免费观看| 久久综合国产精品| 日产欧产美韩系列久久99| 91在线无精精品入口| 国产suv精品一区二区三区| 欧美精品一区男女天堂| 国产综合色精品一区二区三区| 精品日韩在线一区| 国产999精品久久久久久绿帽| 午夜欧美大尺度福利影院在线看| 欧美体内she精高潮| 久久机这里只有精品| 中文字幕av不卡| 欧美日韩成人一区| 黄一区二区三区| 亚洲天堂免费看| 精品久久免费看| 91亚洲精品久久久蜜桃| 偷拍一区二区三区| 国产精品区一区二区三区| 欧美日韩激情在线| 国产尤物一区二区| 五月激情综合婷婷| 一区二区三区日韩| 国产精品看片你懂得| 国产精品毛片a∨一区二区三区| 久久午夜羞羞影院免费观看| 欧美视频日韩视频| 另类小说视频一区二区| 亚洲国产激情av| 一区二区三区精品视频在线| 国产精品亚洲一区二区三区在线| 日韩视频免费直播| jlzzjlzz欧美大全| 国产精品久久久久久久岛一牛影视| 不卡一区二区三区四区| 亚洲国产综合91精品麻豆| 91麻豆精品国产91久久久| 久久99久国产精品黄毛片色诱| 国产日本一区二区| 欧美网站一区二区| 紧缚奴在线一区二区三区| 亚洲日本免费电影| 欧美一区二区国产| 成人av网址在线观看| 亚洲五码中文字幕| 在线观看日韩毛片| 日本道免费精品一区二区三区| 成人动漫av在线| av一二三不卡影片| 在线一区二区三区四区五区| 欧美优质美女网站| 欧美日韩在线三区| 日韩一区中文字幕| 中文在线资源观看网站视频免费不卡| 日韩欧美在线影院| 国产精品久久久久久户外露出| 国产精品毛片久久久久久| 亚洲日本va午夜在线影院| 亚洲美女免费在线| 91蜜桃网址入口| 日韩精品免费专区| 69堂成人精品免费视频| 国产精品电影一区二区| 91精品国产综合久久福利软件 | 欧美人动与zoxxxx乱| 国产成人综合在线观看| 亚洲国产欧美另类丝袜| 日本一区二区视频在线| 91精品国产麻豆国产自产在线 | 欧美国产亚洲另类动漫| 日韩一区二区电影在线| 91福利视频网站|