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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? camshift.cpp

?? tracciatore di mani con webcam
?? CPP
字號:
#include "Common.h"#include "CamShift.h"#include "Exceptions.h"CamShift::CamShift() : m_bins(20),  m_threshold(0),  m_Smin(20),  m_Vmin(40),  m_Vmax(255),  m_tracking(false),  m_pProbProv(NULL){}void CamShift::Initialize(int width, int height){  m_img_width = width;  m_img_height = height;  m_prob_map = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 1);}//// Process//// init or adjust CamShift //void CamShift::PrepareTracking(IplImage* image, const ProbDistrProvider* pProbProv, const CRect& area){  m_pProbProv = pProbProv;  if (m_pProbProv) {    m_comp.rect.x = area.left;    m_comp.rect.y = area.top;    m_comp.rect.width = area.right-area.left;    m_comp.rect.height = area.bottom-area.top;    DoExternal(image);  } else {    m_object.x = area.left;    m_object.y = area.top;    m_object.width = area.right-area.left;    m_object.height = area.bottom-area.top;    ASSERT(image->roi==0);    DoHSV(image, true);  }  m_tracking = true;} // Start//// Process//// init or adjust CamShift //void CamShift::Track(IplImage* image){  if (m_tracking) {    if (m_pProbProv) {      DoExternal(image);    } else {      DoHSV(image, false);    }  }} // Process//// Draw//void CamShift::DrawOverlay(IplImage* image, int overlay_level) const{  if (m_tracking && overlay_level>1) {    if (overlay_level>2 && m_pProbProv==NULL) {      CheckBackProject(image, 1);    }    DrawCross(image);  }} // Drawvoid CamShift::DoHSV(IplImage* image, bool initialize){  m_cCamShift.set_hist_dims( 1, &m_bins );  m_cCamShift.set_hist_bin_range( 0, 0, 180 );  m_cCamShift.set_threshold( 0 );  m_cCamShift.set_min_ch_val( 1, m_Smin );  m_cCamShift.set_max_ch_val( 1, 255 );  m_cCamShift.set_min_ch_val( 2, m_Vmin );  m_cCamShift.set_max_ch_val( 2, m_Vmax );    CvSize size;  cvGetImageRawData( image, 0, 0, &size );  if( m_object.x < 0 ) m_object.x = 0;  if( m_object.x > size.width - m_object.width - 1 )      m_object.x = MAX(0, size.width - m_object.width - 1);  if( m_object.y < 0 ) m_object.y = 0;  if( m_object.y > size.height - m_object.height - 1 )      m_object.y = MAX(0, size.height - m_object.height - 1);  if( m_object.width > size.width - m_object.x )      m_object.width = MIN(size.width, size.width - m_object.x);  if( m_object.height > size.height - m_object.y )      m_object.height = MIN(size.height, size.height - m_object.y);  m_cCamShift.set_window(m_object);    if (initialize) {      m_cCamShift.reset_histogram();      m_cCamShift.update_histogram( image );  }  m_cCamShift.track_object( image );  m_object = m_cCamShift.get_window();}void CamShift::DoExternal(IplImage* image){  ASSERT(m_pProbProv);  ASSERT(m_comp.rect.width != 0 && m_comp.rect.height != 0);    CvRect rect = m_comp.rect;  if( rect.x < 0 )      rect.x = 0;  if( rect.x + rect.width > m_img_width )      rect.width = m_img_width - rect.x;  if( rect.y < 0 )      rect.y = 0;  if( rect.y + rect.height > m_img_height )      rect.height = m_img_height - rect.y;  CRect roi;  roi.left = m_comp.rect.x-m_comp.rect.width/2;  roi.right = roi.left+m_comp.rect.width*2;  roi.top = m_comp.rect.y-m_comp.rect.height/2;  roi.bottom = roi.top+m_comp.rect.height*2;  m_pProbProv->CreateMap(image, m_prob_map, roi);  cvCamShift(m_prob_map, rect,	     cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 10, 1),	     &m_comp, &m_box );  if( m_comp.rect.width == 0 || m_comp.rect.height == 0 )      m_comp.rect = rect; // do not allow tracker to loose the object}void CamShift::CheckBackProject(IplImage* image, int view) const{  if( view == 1 )  {    IplImage* src = ((CvCamShiftTracker&)m_cCamShift).get_back_project();    if( src && src->imageData && image )    {      cvSetImageROI( image, cvRect( m_object.x, m_object.y, m_object.width, m_object.height ));       cvSetImageROI( src, cvRect( m_object.x, m_object.y, m_object.width, m_object.height ));       cvCvtColor( src, image, CV_GRAY2BGR );      cvResetImageROI( image );      cvResetImageROI( src );    }  }  else if( view == 2 && m_tracking )   {    int i, dims;    CvSize size;    m_cCamShift.get_hist_dims( &dims );    cvGetImageRawData( image, 0, 0, &size );    for( i = 0; i < dims; i++ )    {      int val = cvRound(m_cCamShift.query(&i));      CvPoint p[4];      p[0].x = p[1].x = i*size.width/(2*dims);      p[2].x = p[3].x = (i+1)*size.width/(2*dims);      p[1].y = p[2].y = 0;      p[0].y = p[3].y = (val*size.height)/(3*255);      cvFillConvexPoly( image, p, 4, CV_RGB(255,0,0));    }  }}void  CamShift::DrawCross( IplImage* image ) const{  if (m_pProbProv) {    float cs = (float)cos( m_box.angle );    float sn = (float)sin( m_box.angle );    int x = m_comp.rect.x + m_comp.rect.width / 2;    int y = m_comp.rect.y + m_comp.rect.height / 2;    CvPoint p1 = {(int)(x + m_box.size.height * cs / 2),      (int)(y + m_box.size.height * sn / 2)};    CvPoint p2 = {(int)(x - m_box.size.height * cs / 2),      (int)(y - m_box.size.height * sn / 2)};    CvPoint p3 = {(int)(x + m_box.size.width * sn / 2),      (int)(y - m_box.size.width * cs / 2)};    CvPoint p4 = {(int)(x - m_box.size.width * sn / 2),      (int)(y + m_box.size.width * cs / 2)};    cvLine( image, p1, p2, CV_RGB(0,255,0) );    cvLine( image, p4, p3, CV_RGB(0,255,0) );  } else {    float cs = (float)cos( m_cCamShift.get_orientation() );    float sn = (float)sin( m_cCamShift.get_orientation() );    int x = m_object.x + m_object.width / 2;    int y = m_object.y + m_object.height / 2;    CvPoint p1 = {(int)(x + m_cCamShift.get_length() * cs / 2),      (int)(y + m_cCamShift.get_length() * sn / 2)};    CvPoint p2 = {(int)(x - m_cCamShift.get_length() * cs / 2),      (int)(y - m_cCamShift.get_length() * sn / 2)};    CvPoint p3 = {(int)(x + m_cCamShift.get_width() * sn / 2),      (int)(y - m_cCamShift.get_width() * cs / 2)};    CvPoint p4 = {(int)(x - m_cCamShift.get_width() * sn / 2),      (int)(y + m_cCamShift.get_width() * cs / 2)};    cvLine( image, p1, p2, CV_RGB(255,255,255) );    cvLine( image, p4, p3, CV_RGB(255,255,255) );  }}void CamShift::GetArea(CRect& area) const {  if (m_pProbProv) {    area.left = m_comp.rect.x;    area.top = m_comp.rect.y;    area.right = m_comp.rect.x+m_comp.rect.width;    area.bottom = m_comp.rect.y+m_comp.rect.height;  } else {    area.left = m_object.x;    area.top = m_object.y;    area.right = m_object.x+m_object.width;    area.bottom = m_object.y+m_object.height;  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧洲一区二区| 精品一区二区国语对白| 日韩不卡免费视频| 99在线精品观看| 久久网站最新地址| 亚洲午夜精品一区二区三区他趣| 国产一区二区三区av电影| 欧美午夜精品一区二区三区| 国产精品婷婷午夜在线观看| 美女一区二区三区在线观看| 欧美视频你懂的| 亚洲猫色日本管| 97se亚洲国产综合自在线| 久久蜜桃av一区精品变态类天堂| 日本不卡的三区四区五区| 欧美日韩一区二区在线观看| 一区二区三区高清| 日本久久精品电影| 亚洲四区在线观看| 色综合久久中文综合久久97| 中文字幕第一区综合| 国产激情91久久精品导航 | 99久久久久免费精品国产| 国产午夜精品福利| 黄色日韩网站视频| 久久综合精品国产一区二区三区| 久久aⅴ国产欧美74aaa| 日韩欧美电影一区| 免费观看日韩电影| 精品免费一区二区三区| 男女视频一区二区| 欧美本精品男人aⅴ天堂| 美女视频黄免费的久久| 久久综合国产精品| 国产成人av影院| 国产精品久久久久婷婷二区次| 国产成都精品91一区二区三| 国产精品不卡一区| 91网页版在线| 亚洲成人在线免费| 日韩一区二区免费在线观看| 久久99国产精品免费网站| 精品少妇一区二区三区在线播放| 精品一区二区久久久| 久久精品男人天堂av| 成人av电影在线网| 亚洲欧美激情插| 欧美精品久久久久久久多人混战| 午夜精品成人在线| 精品国一区二区三区| 国产成人福利片| 一区二区三区在线看| 91精品福利在线一区二区三区| 日本成人中文字幕在线视频| 国产午夜亚洲精品理论片色戒| 成人美女在线视频| 午夜欧美一区二区三区在线播放| 欧美videos大乳护士334| av在线不卡观看免费观看| 午夜精品福利久久久| 国产三级精品三级在线专区| 欧美性生活一区| 蜜臀av一区二区| 久久蜜臀精品av| 欧美日韩三级一区二区| 国产一区美女在线| 亚洲一区二区在线免费观看视频| 日韩精品一区二区三区三区免费| 国产a精品视频| 五月婷婷综合激情| 国产精品无人区| 日韩一区二区麻豆国产| av日韩在线网站| 裸体一区二区三区| 一区二区三区欧美亚洲| 日韩欧美不卡在线观看视频| 99国产精品久久久久久久久久久| 秋霞影院一区二区| 一区二区三区精品在线| 26uuu国产电影一区二区| 在线观看日产精品| 99在线精品一区二区三区| 韩国三级在线一区| 全国精品久久少妇| 亚洲动漫第一页| 国产精品久久夜| 久久久777精品电影网影网 | 日本一区免费视频| 日韩欧美亚洲国产精品字幕久久久| 91在线无精精品入口| 成人午夜伦理影院| 国产一区二区三区在线观看精品 | 成人av午夜电影| 国精产品一区一区三区mba视频 | 欧美肥妇free| 日本道在线观看一区二区| 成人av电影在线观看| 国产大陆a不卡| 国产成人精品综合在线观看| 日本不卡视频一二三区| 婷婷综合五月天| 亚洲第一搞黄网站| 亚洲一区二区在线免费观看视频| 亚洲婷婷综合色高清在线| 国产精品久久久久一区| 中文字幕精品三区| 国产精品色哟哟网站| 国产精品二区一区二区aⅴ污介绍| 欧美刺激午夜性久久久久久久| 日韩欧美亚洲国产另类| 欧美一卡在线观看| 精品久久久久99| 久久五月婷婷丁香社区| 中文字幕精品三区| 亚洲欧洲精品一区二区三区| 国产精品欧美一级免费| 亚洲日本护士毛茸茸| 亚洲激情图片小说视频| 午夜精品福利一区二区蜜股av| 午夜精品福利视频网站| 久久99国产精品尤物| 国产成人亚洲精品青草天美| 成人毛片视频在线观看| 91成人免费电影| 欧美日韩大陆一区二区| 日韩欧美卡一卡二| 久久久精品国产免大香伊| 中文成人av在线| 亚洲男同性视频| 亚洲国产aⅴ天堂久久| 国产一区在线观看麻豆| 丰满岳乱妇一区二区三区| aaa亚洲精品| 欧美日韩国产综合一区二区三区| 欧美二区三区的天堂| 欧美大片日本大片免费观看| 国产午夜精品久久| 亚洲影院在线观看| 精品一区二区三区在线播放视频| 国产成人鲁色资源国产91色综 | 亚洲午夜日本在线观看| 另类小说综合欧美亚洲| 风流少妇一区二区| 欧美日韩精品高清| 欧美激情艳妇裸体舞| 亚洲www啪成人一区二区麻豆| 久久精品国产999大香线蕉| 成人91在线观看| 欧美一二三四在线| 亚洲日本在线视频观看| 蜜臀精品一区二区三区在线观看| 成人h版在线观看| 欧美军同video69gay| 国产精品―色哟哟| 免费成人av在线| 91在线观看视频| 2021中文字幕一区亚洲| 一二三四区精品视频| 国产一区二区按摩在线观看| 欧美日韩一区不卡| 国产精品久久久久影视| 久久国产生活片100| 欧美午夜精品电影| 国产精品沙发午睡系列990531| 日韩高清不卡一区二区三区| 99精品国产热久久91蜜凸| 亚洲精品一区二区三区精华液 | caoporn国产一区二区| 日韩欧美亚洲另类制服综合在线| 亚洲精品国产第一综合99久久| 丁香亚洲综合激情啪啪综合| 欧美一级欧美三级在线观看| 一区二区三区中文免费| thepron国产精品| 国产欧美日韩精品一区| 精久久久久久久久久久| 91精品国产91久久久久久最新毛片| 亚洲黄色尤物视频| av午夜精品一区二区三区| 久久久亚洲高清| 美女视频一区二区| 91麻豆精品国产91久久久| 有坂深雪av一区二区精品| av一区二区不卡| 国产精品久久久久久久久图文区| 国产精品系列在线观看| 精品免费视频.| 国产在线不卡视频| 精品久久久久久久久久久院品网| 日韩精品国产欧美| 欧美日韩国产综合草草| 亚洲自拍另类综合| 欧美午夜一区二区三区| 亚洲国产精品久久艾草纯爱| 在线视频一区二区三区| 亚洲愉拍自拍另类高清精品| 欧美性猛交xxxx黑人交| 亚洲国产一区二区三区青草影视| 91成人在线观看喷潮| 亚洲一区二区成人在线观看|