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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? objecttracker.cpp

?? 學(xué)習(xí)meanshift跟蹤算法的好程序
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*******************************************************************
Bilkent University: 

Mean-shift Tracker based Moving Object Tracker in Video

Version: 1.0

Compiler: Microsoft Visual C++ 6.0 (tested in both debug and release 
          mode)

**********************************************************************/
#include "ObjectTracker.h"
#include "utils.h"
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
/*
#define GetRValue(rgb)   ((UBYTE8) (rgb)) 
#define GetGValue(rgb)   ((UBYTE8) (((ULONG_32) (rgb)) >> 8)) 
#define GetBValue(rgb)   ((UBYTE8) ((rgb) >> 16)) 
*/
//#define RGB(r, g ,b)  ((ULONG_32) (((UBYTE8) (r) | ((UBYTE8) (g) << 8)) | (((ULONG_32) (UBYTE8) (b)) << 16))) 

#define min(a, b)  (((a) < (b)) ? (a) : (b))

#define max(a, b)  (((a) > (b)) ? (a) : (b)) 


#define  MEANSHIFT_ITARATION_NO 5
#define  DISTANCE_ITARATION_NO 1
#define  ALPHA 1
#define  EDGE_DETECT_TRESHOLD  32



CObjectTracker::CObjectTracker(INT32 imW,INT32 imH,IMAGE_TYPE eImageType)
{
 
  m_nImageWidth = imW;
  m_nImageHeight = imH;
  m_eIMAGE_TYPE = eImageType;
  m_cSkipValue = 0;

  for (UBYTE8 i=0;i<MAX_OBJECT_TRACK_NUMBER;i++)
  {
	  m_sTrackingObjectTable[i].Status = false;
      for(SINT16 j=0;j<HISTOGRAM_LENGTH;j++)
		  m_sTrackingObjectTable[i].initHistogram[j] = 0;
  }

  m_nFrameCtr = 0;	
  m_uTotalTime = 0;
  m_nMaxEstimationTime = 0;
  m_cActiveObject = 0;
	TotalDist=0.0;
	LastDist=0.0;

  switch (eImageType)
  {
   case MD_RGBA:
    m_cSkipValue = 4 ;
	break ;
   case MD_RGB:
	m_cSkipValue = 3 ;
   break ;
  };
};

CObjectTracker::~CObjectTracker()
{
 

}
//returns pixel values in format |0|B|G|R| wrt to (x.y)
/*
ULONG_32 CObjectTracker::GetPixelValues(UBYTE8 *frame,SINT16 x,SINT16 y)
{
 ULONG_32 pixelValues = 0;

 pixelValues = *(frame+(y*m_nImageWidth+x)*m_cSkipValue+2)|//0BGR
               *(frame+(y*m_nImageWidth+x)*m_cSkipValue+1) << 8|
			   *(frame+(y*m_nImageWidth+x)*m_cSkipValue) << 16;


 return(pixelValues);

}*/

//set RGB components wrt to (x.y)
void CObjectTracker::SetPixelValues(IplImage *r,IplImage *g,IplImage *b,ULONG_32 pixelValues,SINT16 x,SINT16 y)
{
//  *(frame+(y*m_nImageWidth+x)*m_cSkipValue+2) = UBYTE8(pixelValues & 0xFF);
//  *(frame+(y*m_nImageWidth+x)*m_cSkipValue+1) = UBYTE8((pixelValues >> 8) & 0xFF);
//  *(frame+(y*m_nImageWidth+x)*m_cSkipValue) = UBYTE8((pixelValues >> 16) & 0xFF); 
	//setpix32f
	setpix8c(r, y, x, UBYTE8(pixelValues & 0xFF));
	setpix8c(g, y, x, UBYTE8((pixelValues >> 8) & 0xFF));
	setpix8c(b, y, x, UBYTE8((pixelValues >> 16) & 0xFF));
}

// returns box color 
ULONG_32 CObjectTracker::GetBoxColor()
{
 ULONG_32 pixelValues = 0;

 switch(m_cActiveObject)
 {
 case 0:
	 pixelValues = RGB(255,0,0);
	 break;
 case 1:
	 pixelValues = RGB(0,255,0);
	 break;
 case 2:
	 pixelValues = RGB(0,0,255);
	 break;
 case 3:
	 pixelValues = RGB(255,255,0);
	 break;
 case 4:
	 pixelValues = RGB(255,0,255);
	 break;
 case 5:
	 pixelValues = RGB(0,255,255);
	 break;
 case 6:
	 pixelValues = RGB(255,255,255);
	 break;
 case 7:
	 pixelValues = RGB(128,0,128);
	 break;
 case 8:
	 pixelValues = RGB(128,128,0);
	 break;
 case 9:
	 pixelValues = RGB(128,128,128);
	 break;
 case 10:
	 pixelValues = RGB(255,128,0);
	 break;
 case 11:
	 pixelValues = RGB(0,128,128);
	 break;
 case 12:
	 pixelValues = RGB(123,50,10);
	 break;
 case 13:
	 pixelValues = RGB(10,240,126);
	 break;
 case 14:
	 pixelValues = RGB(0,128,255);
	 break;
 case 15:
	 pixelValues = RGB(128,200,20);
	 break;
 default:
	 break;
 }

 return(pixelValues);


}
//initializes the object parameters 
void CObjectTracker::ObjectTrackerInitObjectParameters(SINT16 x,SINT16 y,SINT16 Width,SINT16 Height)
{

   m_cActiveObject = 0;

   m_sTrackingObjectTable[m_cActiveObject].X = x;
   m_sTrackingObjectTable[m_cActiveObject].Y = y;
   m_sTrackingObjectTable[m_cActiveObject].W = Width;
   m_sTrackingObjectTable[m_cActiveObject].H = Height;

   m_sTrackingObjectTable[m_cActiveObject].vectorX = 0;
   m_sTrackingObjectTable[m_cActiveObject].vectorY = 0;

  
   m_sTrackingObjectTable[m_cActiveObject].Status = true;
   m_sTrackingObjectTable[m_cActiveObject].assignedAnObject = false;
}

void CObjectTracker::ObjeckTrackerHandlerByUser(IplImage *frame)
{
   m_cActiveObject = 0;

   if (m_sTrackingObjectTable[m_cActiveObject].Status)
   {
	   if (!m_sTrackingObjectTable[m_cActiveObject].assignedAnObject)
	   {
		   FindHistogram(frame,m_sTrackingObjectTable[m_cActiveObject].initHistogram);
           m_sTrackingObjectTable[m_cActiveObject].assignedAnObject = true;
	   }
	   else
	   {
		   FindNextLocation(frame);    

		   DrawObjectBox(frame);
	   }
   }

}
//Extracts the histogram of box
void CObjectTracker::FindHistogram(IplImage *frame, FLOAT32 (*histogram))
{
  SINT16  i = 0;
  SINT16  x = 0;
  SINT16  y = 0;
  UBYTE8  E = 0;
  UBYTE8  qR = 0,qG = 0,qB = 0;
//  ULONG_32 pixelValues = 0;
  UINT32 numberOfPixel = 0;
  IplImage* r, * g, * b;
	r = cvCreateImage( cvGetSize(frame), frame->depth, 1 );	g = cvCreateImage( cvGetSize(frame), frame->depth, 1 );	b = cvCreateImage( cvGetSize(frame), frame->depth, 1 );	cvCvtPixToPlane( frame, b, g, r, NULL );	//divide color image into separate planes r, g, b. The exact sequence doesn't matter.
  
  for (i=0;i<HISTOGRAM_LENGTH;i++) //reset all histogram
	  histogram[i] = 0.0;

  //for all the pixels in the region
  for (y=max(m_sTrackingObjectTable[m_cActiveObject].Y-m_sTrackingObjectTable[m_cActiveObject].H/2,0);y<=min(m_sTrackingObjectTable[m_cActiveObject].Y+m_sTrackingObjectTable[m_cActiveObject].H/2,m_nImageHeight-1);y++)
	  for (x=max(m_sTrackingObjectTable[m_cActiveObject].X-m_sTrackingObjectTable[m_cActiveObject].W/2,0);x<=min(m_sTrackingObjectTable[m_cActiveObject].X+m_sTrackingObjectTable[m_cActiveObject].W/2,m_nImageWidth-1);x++)
	  {
		  E = CheckEdgeExistance(r, g, b,x,y);

			qR = (UBYTE8)pixval8c( r, y, x )/16;//quantize R component
			qG = (UBYTE8)pixval8c( g, y, x )/16;//quantize G component
			qB = (UBYTE8)pixval8c( b, y, x )/16;//quantize B component

		  histogram[4096*E+256*qR+16*qG+qB] += 1;	//HISTOGRAM_LENGTH=8192

		  numberOfPixel++;

   }

  for (i=0;i<HISTOGRAM_LENGTH;i++) //normalize
	  histogram[i] = histogram[i]/numberOfPixel;

	cvReleaseImage(&r);
	cvReleaseImage(&g);
	cvReleaseImage(&b);

}
 //Draw box around object
void CObjectTracker::DrawObjectBox(IplImage *frame)
{
  SINT16 x_diff = 0;
  SINT16 x_sum  = 0;
  SINT16 y_diff = 0;
  SINT16 y_sum  = 0;
  SINT16  x = 0;
  SINT16  y = 0;
  ULONG_32 pixelValues = 0;
  IplImage* r, * g, * b;
	r = cvCreateImage( cvGetSize(frame), frame->depth, 1 );	g = cvCreateImage( cvGetSize(frame), frame->depth, 1 );	b = cvCreateImage( cvGetSize(frame), frame->depth, 1 );	cvCvtPixToPlane( frame, b, g, r, NULL );
  pixelValues = GetBoxColor();

  //the x left and right bounds
  x_sum =  min(m_sTrackingObjectTable[m_cActiveObject].X+m_sTrackingObjectTable[m_cActiveObject].W/2+1,m_nImageWidth-1);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美tickling挠脚心丨vk| 91色视频在线| 亚洲精品成人悠悠色影视| 久久色在线视频| 91精品国产高清一区二区三区 | 激情综合色综合久久综合| 一区二区三区精品视频在线| 亚洲日本在线天堂| 五月激情综合网| 国产在线观看一区二区| 91精品办公室少妇高潮对白| 男人的j进女人的j一区| 成人黄色电影在线 | 亚洲免费观看高清完整版在线观看| 久久只精品国产| 国产欧美一区二区精品婷婷| 国产女主播视频一区二区| 中文字幕精品一区二区精品绿巨人| 日本一区二区三级电影在线观看| 国产精品免费久久| 亚洲精品免费在线观看| 图片区小说区国产精品视频| 日本亚洲天堂网| 国产精品一区一区三区| 成人黄色国产精品网站大全在线免费观看 | 欧美tickling网站挠脚心| 久久精品一区四区| 亚洲视频一区二区在线| 首页国产丝袜综合| 国产精品亚洲视频| 欧美日韩国产天堂| 久久精品亚洲精品国产欧美| 亚洲一区在线看| 久久9热精品视频| 97久久精品人人澡人人爽| 在线成人av网站| 中文字幕欧美激情| 日本不卡的三区四区五区| 成人激情av网| 在线观看91av| 亚洲欧美另类小说| 国产在线精品国自产拍免费| 色婷婷亚洲综合| 久久久久国产精品麻豆| 五月综合激情婷婷六月色窝| 岛国av在线一区| 3751色影院一区二区三区| 亚洲在线免费播放| 国产在线播放一区| 欧美午夜精品理论片a级按摩| 精品精品国产高清a毛片牛牛 | 久久99国产精品久久99果冻传媒| 成人激情免费网站| 精品国产一区久久| 亚洲国产一区视频| 99精品国产热久久91蜜凸| 精品国产乱码久久久久久久久 | 亚洲精品在线电影| 亚洲成av人片一区二区梦乃| 成人午夜激情片| 精品国产一二三| 亚洲不卡av一区二区三区| 99精品视频在线免费观看| 日韩美女视频在线| 日本女人一区二区三区| 欧美在线免费观看视频| 亚洲色欲色欲www| 不卡大黄网站免费看| 国产日韩欧美a| 寂寞少妇一区二区三区| 欧美成人一区二区三区片免费| 亚洲国产综合91精品麻豆| 欧美亚洲综合在线| 亚洲一区二区在线观看视频 | 国产精品久久久久影院亚瑟| 国产一区亚洲一区| 亚洲精品一区二区在线观看| 免费精品99久久国产综合精品| 欧美少妇xxx| 日本特黄久久久高潮| 欧美日韩激情一区二区三区| 天天av天天翘天天综合网| 欧美日韩免费在线视频| 亚洲国产精品久久人人爱| 在线欧美日韩国产| 亚洲成人动漫在线免费观看| 欧美日韩激情在线| 美洲天堂一区二卡三卡四卡视频| 欧美一二三区在线观看| 激情小说欧美图片| 久久亚洲欧美国产精品乐播| 国产麻豆视频一区| 国产精品国产三级国产| 色婷婷久久久久swag精品 | 久久久无码精品亚洲日韩按摩| 韩国欧美国产一区| 国产亚洲女人久久久久毛片| av综合在线播放| 亚洲色图欧美偷拍| 欧美一区二区三区四区高清| 精品亚洲aⅴ乱码一区二区三区| 国产日产欧产精品推荐色 | 精品亚洲成a人在线观看| 中文成人综合网| 91国产丝袜在线播放| 蜜臀av一区二区三区| 久久先锋影音av| 91香蕉视频mp4| 日韩黄色片在线观看| 国产欧美日韩不卡| 欧美日韩dvd在线观看| 久久丁香综合五月国产三级网站| 中文字幕中文字幕一区二区| 欧美日韩国产天堂| 成人午夜碰碰视频| 国产精品一区二区三区乱码 | 亚洲va欧美va国产va天堂影院| 日韩一区二区免费视频| 粉嫩aⅴ一区二区三区四区| 亚洲国产日日夜夜| 国产欧美综合在线观看第十页| 在线观看日韩电影| 国产91丝袜在线18| 日韩电影在线免费| 亚洲视频一区二区在线观看| 欧美精品一区二区三区蜜桃视频| 色欲综合视频天天天| 国产乱对白刺激视频不卡| 午夜精品福利一区二区三区av | 亚洲一区二区黄色| 国产精品久久福利| 日韩欧美国产不卡| 欧美色倩网站大全免费| 成人国产免费视频| 国产在线日韩欧美| 亚洲成人av电影| 亚洲精品视频观看| 中文字幕在线播放不卡一区| 日韩精品中文字幕一区二区三区 | 欧美日韩久久一区二区| 99久久久久久| 丁香婷婷综合色啪| 国产毛片精品一区| 韩国女主播成人在线| 久久精品国产免费看久久精品| 天堂午夜影视日韩欧美一区二区| 国产精品久久久久久久久免费桃花| 欧美xxxxx裸体时装秀| 欧美一区二区三区四区久久 | 精品国产第一区二区三区观看体验 | 色哟哟国产精品| 99麻豆久久久国产精品免费 | 9191久久久久久久久久久| 91麻豆高清视频| 色综合久久久久| 一本久久a久久精品亚洲| 色婷婷综合久色| 日本高清免费不卡视频| 91国内精品野花午夜精品 | 精品国产一区二区三区久久久蜜月 | 亚洲电影一级黄| 亚洲一区二区成人在线观看| 一区二区三区四区在线播放| 亚洲精品国产成人久久av盗摄| 亚洲精品中文在线影院| 一区二区三区在线免费观看| 久久精品国产精品亚洲精品 | 国产精品免费丝袜| 亚洲欧洲性图库| 一区二区三区在线视频播放| 亚洲国产欧美另类丝袜| 天堂在线亚洲视频| 国内成人自拍视频| 成人免费毛片嘿嘿连载视频| 91丨porny丨中文| 欧美区在线观看| 久久综合九色综合97婷婷女人| 国产精品婷婷午夜在线观看| 亚洲美女视频在线| 奇米影视在线99精品| 国产呦精品一区二区三区网站| 大尺度一区二区| 欧美日韩一区小说| 2021国产精品久久精品 | 欧美日韩在线免费视频| 亚洲精品一区二区三区影院| 中文字幕一区二区三| 性做久久久久久久久| 国产一区二区精品久久99| 色视频一区二区| 久久综合色天天久久综合图片| 国产精品理论片| 视频一区欧美精品| www.欧美色图| 欧美成人aa大片| 亚洲香肠在线观看| 国产大片一区二区| 91精品国产综合久久福利| 国产精品国产三级国产普通话蜜臀 | 日本女人一区二区三区|