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

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

?? meanshift_tracker.c

?? 學習跟蹤的好程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
  short int *dx1, *dx2;  int r,c,rr,cc,hnrows,hncols, srow, erow, scol, ecol, count;  int firsttime;  float *fptr, laccum, raccum, score, minscore, maxscore;  unsigned char *dptr;  hnrows = nrows/2;  hncols = ncols/2;  if (startrow < 0) startrow = 0;  if (startcol < 0) startcol = 0;  if (endrow >= nrows) endrow = (nrows-1);  if (endcol >= ncols) endcol = (ncols-1);  firsttime = 1;  for (r=startrow; r <= endrow; r++) {    fptr = NGIftemp+r*ncols+startcol;    for (c=startcol; c <= endcol; c++) {      /*note, must take into account that gradDx and gradDy are halfsize	images, i.e. of size nrows/2 X ncols/2 */      srow = (r - hrow)/2; if (srow < 0) srow = 0;      erow = (r + hrow)/2; if (erow >= hnrows) erow = (hnrows-1);      scol = (c - hcol)/2; if (scol < 0) scol = 0;      ecol = (c + hcol)/2; if (ecol >= hncols) ecol = (hncols-1);      laccum = 0; raccum = 0; count = 0;      for (rr = srow; rr <= erow; rr++) {	dx1 = gradDx + rr*hncols + scol;	dx2 = gradDx + rr*hncols + ecol;	for (cc = scol; cc <= ecol; cc++) {	  laccum += ((*dx1) < 0? -(*dx1) : (*dx1));	  raccum += ((*dx2) < 0? -(*dx2) : (*dx2));	  count++;	  dx1 += hncols;	  dx2 += hncols;	}      }//      accum = *(gradDx + (r/2)*hncols + (c/2)); //      if (accum < 0) accum = -accum;//      count = 1;     if (laccum < raccum)       *fptr++ = score = laccum / (float)count;     else       *fptr++ = score = raccum / (float)count;     if (firsttime) {       minscore = maxscore = score;       firsttime = 0;     }     if (score < minscore) minscore = score;     if (score > maxscore) maxscore = score;    }  }    memset(edgepix,0,nrows*ncols);  for (r=startrow; r <= endrow; r++) {    fptr = NGIftemp+r*ncols+startcol;    dptr = edgepix+r*ncols+startcol;    for (c=startcol; c <= endcol; c++) {      *dptr++ = (unsigned char)(((*fptr++ - minscore)/(maxscore-minscore))*255);    }  }  *minval = minscore;  *maxval = maxscore;  return;}void bhatblock(float *modelhist, int histlen,	       unsigned char *indeximage, int nrows, int ncols,	       int startrow, int endrow, int startcol, int endcol,	       int hrow, int hcol, unsigned char *bhatpix, float *minval, float *maxval);//========================================void bhatblock(float *modelhist, int histlen,	       unsigned char *indeximage, int nrows, int ncols,	       int startrow, int endrow, int startcol, int endcol,	       int hrow, int hcol, unsigned char *bhatpix, float *minval, float *maxval)     {  int i, h, sor, sir, eor, eir, soc, sic, eoc, eic, midc, midr, c, r;  int inhist[256], outhist[256], *hiptr, *hoptr, insqlen, outsqlen;  float fscore, *fptr, *mptr, indotprod, outdotprod;
  double fminscore, fmaxscore;  unsigned char *dptr, *dsor, *dsir, *deor, *deir, *dstart, *dend;  h = ((hrow < hcol) ? hrow/2 : hcol/2);  if (h < 2) h = 2;  if (startrow < 0) startrow = 0;  if (startcol < 0) startcol = 0;  if (endrow > nrows) endrow = nrows;  if (endcol > ncols) endcol = ncols;  fminscore = 99999.9; fmaxscore = -99999.9;  dstart = indeximage;  dend = indeximage + nrows * ncols;  for (midc=startcol; midc < endcol; midc++) {    fptr = NGIftemp+startrow*ncols+midc;    sic = midc - hcol;         if (sic < 0) sic = 0;    soc = midc - hcol - h;     if (soc < 0) soc = 0;    eic = midc + hcol + 1;     if (eic > ncols) eic = ncols;    eoc = midc + hcol + h + 1; if (eoc > ncols) eoc = ncols;    midr = startrow;    sir = midr - hrow;         if (sir < 0) sir = 0;    sor = midr - hrow - h;     if (sor < 0) sor = 0;    eir = midr + hrow + 1;     if (eir > nrows) eir = nrows;    eor = midr + hrow + h + 1; if (eor > nrows) eor = nrows;    for (i=0, hiptr=inhist, hoptr=outhist; i < histlen; i++, hiptr++, hoptr++)       *hiptr = *hoptr = 0;    dsor = indeximage + sor * ncols + soc;    for (r=sor; r < sir; r++, dsor += ncols) {      for (dptr = dsor, c = soc; c < eoc; c++, dptr++) { 		outhist[*dptr]++;      }     }    for (r=sir; r < eir; r++, dsor += ncols) {      dptr = dsor;      for (c = soc; c < sic; c++, dptr++) {		outhist[*dptr]++;      }      for (c = sic; c < eic; c++, dptr++) { 		inhist[*dptr]++;      }      for (c = eic; c < eoc; c++, dptr++) {		outhist[*dptr]++;      }    }    for (r=eir; r < eor; r++, dsor += ncols) {      for (dptr = dsor, c = soc; c < eoc; c++, dptr++) {		outhist[*dptr]++;      }    }        indotprod = outdotprod = 0.0;    insqlen = outsqlen = 0;    for (i=0, hiptr=inhist, hoptr=outhist, mptr=modelhist; i < histlen; i++, hiptr++, hoptr++, mptr++) {      if (*hiptr) {		insqlen += (*hiptr) * (*hiptr);		indotprod += (float)(*hiptr) * (*mptr);      }      if (*hoptr) {		outsqlen += (*hoptr) * (*hoptr);		outdotprod += (float)(*hoptr) * (*mptr);      }    }        fscore = *fptr = (float)(indotprod/sqrt((float)insqlen) -  outdotprod/sqrt((float)outsqlen));    if (fscore > fmaxscore) fmaxscore = fscore;    if (fscore < fminscore) fminscore = fscore;    fptr += ncols;    midr = startrow;    sir = midr - hrow;    sor = midr - hrow - h;    eir = midr + hrow + 1;    eor = midr + hrow + h + 1;    dsor = indeximage + sor * ncols + soc;    deor = indeximage + eor * ncols + soc;    dsir = indeximage + sir * ncols + sic;    deir = indeximage + eir * ncols + sic;    for (midr = startrow+1; midr < endrow; midr++) {      if (dsor > dstart) {		for (dptr=dsor, c=soc; c < eoc; c++, dptr++) {		  outdotprod -= modelhist[*dptr];		  outsqlen -= (2 * outhist[*dptr] - 1);		  outhist[*dptr]--;		}      }      if (dsir > dstart) {		for (dptr=dsir, c=sic; c < eic; c++, dptr++) {		  indotprod -= modelhist[*dptr];		  insqlen -= (2 * inhist[*dptr] - 1);		  inhist[*dptr]--;		  outdotprod += modelhist[*dptr];		  outsqlen += (2 * outhist[*dptr] + 1);		  outhist[*dptr]++;		}      }      if (deir < dend) {		for (dptr=deir, c=sic; c < eic; c++, dptr++) {		  indotprod += modelhist[*dptr];		  insqlen += (2 * inhist[*dptr] + 1);		  inhist[*dptr]++;		  outdotprod -= modelhist[*dptr];		  outsqlen -= (2 * outhist[*dptr] - 1);		  outhist[*dptr]--;		}      }      if (deor < dend) {		for (dptr=deor, c=soc; c < eoc; c++, dptr++) {		  outdotprod += modelhist[*dptr];		  outsqlen += (2 * outhist[*dptr] + 1);		  outhist[*dptr]++;		}      } 	  fscore = *fptr = (float)(indotprod/sqrt((float)insqlen) -  outdotprod/sqrt((float)outsqlen));	  if (fscore > fmaxscore) fmaxscore = fscore;	  if (fscore < fminscore) fminscore = fscore;	  fptr += ncols;	  dsor += ncols; deor += ncols; 	  dsir += ncols; deir += ncols;    }  }  dptr = bhatpix;  memset(bhatpix,0,nrows*ncols);  for (r=startrow; r < endrow; r++) {    fptr = NGIftemp+r*ncols+startcol;    dptr = bhatpix+r*ncols+startcol;    for (c=startcol; c < endcol; c++){      //*dptr++ = (unsigned char)(((*fptr++ - fminscore)/(fmaxscore-fminscore))*255);
		*dptr = (unsigned char)(((*fptr++ - fminscore)/(fmaxscore-fminscore))*255);
		dptr++;
	}  }  *minval = (float)fminscore;  *maxval = (float)fmaxscore;  return;}void histblock(unsigned char *indexim, int nrows, int ncols, 	       int srow, int erow, int scol, int ecol,	       int *histogram, int histlen, int *histsum){  int i,r,c;  unsigned char *dptr;  for (i=0; i < histlen; i++) histogram[i] = 0;  *histsum = 0;  if (srow < 0) srow = 0;  if (scol < 0) scol = 0;  if (erow > nrows) erow = nrows;  if (ecol > ncols) ecol = ncols;  for (r = srow; r < erow; r++) {    dptr = indexim + r*ncols + scol;    for (c = scol; c < ecol; c++, dptr++) {      histogram[*dptr]++;      (*histsum)++;    }  }    return;}void ratblock(float *modelhist, int *datahist, int histlen,	      unsigned char *indeximage, int nrows, int ncols,	      int startrow, int endrow, int startcol, int endcol,	      int hrow, int hcol, unsigned char *bhatpix, float *minval, float *maxval)     {  int i, h, c, r;  float fscore, fminscore, fmaxscore, *fptr;  float rathist[256], accum;  unsigned char *dptr;  h = ((hrow < hcol) ? hrow/2 : hcol/2);  if (h < 2) h = 2;  if (startrow < 0) startrow = 0;  if (startcol < 0) startcol = 0;  if (endrow > nrows) endrow = nrows;  if (endcol > ncols) endcol = ncols;
  //make norm(datahist) = 1  accum = 0;  for (i=0; i < histlen; i++)    accum += (float)(datahist[i]*datahist[i]);  accum = (float)sqrt(accum);  printf("accum is %f\n",accum);  fminscore = 0; fmaxscore = 0;  for (i=0; i < histlen; i++){     if (datahist[i] && modelhist[i]) {      fscore = rathist[i] = (float)sqrt(modelhist[i] / (datahist[i] / accum));//      fscore = rathist[i] = modelhist[i] / (datahist[i] / accum);//      fscore = rathist[i] = modelhist[i] * (datahist[i] / accum);//      fscore = rathist[i] = modelhist[i];      if (fscore > fmaxscore) fmaxscore = fscore;      if (fscore < fminscore) fminscore = fscore;    }	else		rathist[i] = 0;  }

  //for every entry in indeximg, get histogram ratio (as weight)  for (r=startrow; r < endrow; r++) {    fptr = NGIftemp+r*ncols + startcol;    dptr = indeximage+r*ncols + startcol;    for (c=startcol; c < endcol; c++) {      *fptr = rathist[*dptr];      fptr++;      dptr++;    }  }  printf("min %f max %f\n",fminscore,fmaxscore);
  //normalize NGIftemp to 0~255, output bhatpix  dptr = bhatpix;  memset(bhatpix,0,nrows*ncols);  for (r=startrow; r < endrow; r++) {    fptr = NGIftemp+r*ncols+startcol;    dptr = bhatpix+r*ncols+startcol;    for (c=startcol; c < endcol; c++){      //*dptr++ = (unsigned char)(((*fptr++ - fminscore)/(fmaxscore-fminscore))*255);
		*dptr = (unsigned char)(((*fptr++ - fminscore)/(fmaxscore-fminscore))*255);
		dptr++;
	}  }  *minval = fminscore;  *maxval = fmaxscore;  return;}float ratmeanshift(float *modelhist, int *datahist, int histlen,		   unsigned char *indeximage, short int *gradDx, short int *gradDy, 		   int nrows, int ncols, int row, int col, int hrow, int hcol,		   float stepepsilon, int *bestrow, int *bestcol){	float score, scoreB, scoreE, w;	unsigned char *bhatim, *edgeim, *dptr, *eptr;	float accum, accumB, accumE, sumr, sumc, dr, dc, eps2, stepdist2;	float bhatmin, bhatmax;	int count,r,c,srow,erow,scol,ecol,deltarow,deltacol;	int newrow,newcol,histsum,ntimes,border;	eps2 = stepepsilon*stepepsilon;	bhatim = NGItemp;	border = ((hcol < hrow) ? hcol : hrow);

	histblock(indeximage, nrows, ncols, 
	  row-hrow, row+hrow, col-hcol, col+hcol,
	  datahist, histlen, &histsum);
	ratblock(modelhist, datahist, histlen, indeximage, nrows, ncols, 	   row-hrow-border,row+hrow+border,col-hcol-border,col+hcol+border,	   hrow, hcol, bhatim, &bhatmin, &bhatmax);
	memcpy(NGIbhatim, bhatim, nrows*ncols);	edgeim = NGItemp+nrows*ncols;	//edgeblock(gradDx, gradDy, nrows, ncols, 	//row-2*hrow,row+2*hrow,col-2*hcol,col+2*hcol,	//hrow, hcol, edgeim, &edgemin, &edgemax);
//	//debug print out images
//	if(0)
//	{
//		FILE *file;
//		char *filename;
//		int row, col;
//		int offset;
//	
//		filename = "result/bhatim0.txt";
//		file = fopen(filename, "w");
//		for (row=0; row<243; row++){			
//			for (col=0; col<320; col++){
//				offset = row*320+col;
//				fprintf(file, "%3d ", *(bhatim+offset));
//			}
//			fprintf(file, "\n");
//		}
//	}
	stepdist2 = eps2+1;	ntimes = 0;	while ((stepdist2 >= eps2)&&(ntimes < 10)) {		accum = accumB = accumE = sumr = sumc = 0.0;  count = 0;		srow = row - hrow; if (srow < 0) srow = 0;  		scol = col - hcol; if (scol < 0) scol = 0;  		erow = row + hrow; if (erow >= nrows) erow = nrows-1;  		ecol = col + hcol; if (ecol >= ncols) ecol = ncols-1;    		for (r = srow; r <= erow; r++) {		  dptr = bhatim + r*ncols + scol;		  eptr = edgeim + r*ncols + scol;		  dr = (float)(r - row);		  for (c = scol; c <= ecol; c++, dptr++, eptr++) {			dc = (float)(c - col);			//	w = *dptr + *eptr;			w = *dptr;			sumr += w*dr;			sumc += w*dc;			accum += w;			accumB += *dptr;			accumE += *eptr;			count++;		  }		}		scoreB = accumB / (float)count;		scoreE = accumE / (float)count;		newrow = (int)(row + floor(sumr/accum+0.5));		newcol = (int)(col + floor(sumc/accum+0.5));    		deltarow = newrow - row;		deltacol = newcol - col;	//    fprintf(stdout,"  step row %d col %d\n",newrow,newcol);		stepdist2 = (float)(deltarow*deltarow + deltacol*deltacol);		row = newrow; 		col = newcol;		histblock(indeximage, nrows, ncols, 			  row-hrow, row+hrow, col-hcol, col+hcol,			  datahist, histlen, &histsum);		ratblock(modelhist, datahist, histlen, indeximage, nrows, ncols, 			 row-hrow-border,row+hrow+border,col-hcol-border,col+hcol+border,			 hrow, hcol, bhatim, &bhatmin, &bhatmax);		memcpy(NGIbhatim, bhatim, nrows*ncols);		ntimes++;	}	//  fprintf(stdout,"  final row %d col %d\n",row,col);	*bestrow = row;	*bestcol = col;	histblock(indeximage, nrows, ncols, 		row-hrow, row+hrow, col-hcol, col+hcol,		datahist, histlen, &histsum);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产秦先生| 91精品免费在线| 欧美日韩高清在线| www国产精品av| 亚洲午夜一区二区| 成人精品视频.| 日韩一本二本av| 亚洲狠狠丁香婷婷综合久久久| 精品一区二区三区日韩| 色欧美88888久久久久久影院| 26uuu精品一区二区在线观看| 亚洲国产美女搞黄色| 99视频一区二区三区| 欧美va亚洲va| 青青草伊人久久| 欧美亚洲一区二区在线观看| 亚洲特黄一级片| 国产二区国产一区在线观看| 日韩一区二区三区精品视频| 亚洲国产日韩一区二区| 91视视频在线观看入口直接观看www| 精品国产青草久久久久福利| 免费在线成人网| 欧美日韩国产乱码电影| 亚洲永久精品国产| www.亚洲色图.com| 中文乱码免费一区二区| 福利91精品一区二区三区| 国产日韩三级在线| 国产精品自在欧美一区| 久久精品99久久久| 一区二区三区不卡视频| 欧美日韩亚洲综合一区| 免费av网站大全久久| 国产精品久久久久婷婷二区次| 极品美女销魂一区二区三区免费| gogo大胆日本视频一区| 一区在线观看视频| 欧美成人一区二区三区片免费| 不卡的电视剧免费网站有什么| 日韩精品电影一区亚洲| 成人欧美一区二区三区1314| 欧美一级夜夜爽| 91在线高清观看| 国产一区 二区 三区一级| 一区二区在线电影| 久久久精品欧美丰满| 欧美日韩中文字幕精品| 国产精品2024| 麻豆国产精品一区二区三区 | 亚洲国产一区二区视频| 国产日韩精品视频一区| 日韩色在线观看| 在线精品视频小说1| 高清国产一区二区三区| 久久se精品一区精品二区| 亚洲亚洲精品在线观看| 中文字幕成人网| 久久精品一级爱片| 精品精品国产高清a毛片牛牛 | 男女性色大片免费观看一区二区| 亚洲欧美日韩在线| 亚洲国产精品精华液ab| 精品国产污污免费网站入口 | 欧美电影免费观看高清完整版在线 | 欧美美女bb生活片| 91国偷自产一区二区三区成为亚洲经典| 国产一区二区不卡在线| 蜜桃视频第一区免费观看| 天堂va蜜桃一区二区三区漫画版| 国产精品久久久久久久久晋中 | 欧美性xxxxxxxx| 色哟哟欧美精品| 99热在这里有精品免费| 国产精品白丝jk黑袜喷水| 日韩—二三区免费观看av| 亚洲第一二三四区| 亚洲国产日韩精品| 丝袜美腿亚洲色图| 亚洲成a人片在线不卡一二三区| 亚洲精品视频在线观看免费| 亚洲欧美日韩一区| 亚洲综合免费观看高清完整版 | 国产日产欧美精品一区二区三区| 精品国产一二三| 国产亚洲婷婷免费| 中文字幕欧美三区| 日韩码欧中文字| 曰韩精品一区二区| 日韩国产精品久久| 黄色日韩网站视频| 国产白丝网站精品污在线入口 | 色婷婷激情综合| 91精品福利视频| 欧美挠脚心视频网站| 精品欧美久久久| 国产欧美日韩精品一区| 国产精品福利在线播放| 亚洲日本在线观看| 天堂成人国产精品一区| 精品一区二区综合| 国产精品白丝jk黑袜喷水| 99精品在线观看视频| 色婷婷综合久久久久中文| 欧美巨大另类极品videosbest | 久久综合五月天婷婷伊人| 久久夜色精品国产噜噜av| 国产精品天美传媒沈樵| 一区二区在线看| 蜜桃视频一区二区| 99精品热视频| 884aa四虎影成人精品一区| 久久综合狠狠综合久久激情| 亚洲欧洲av在线| 日本最新不卡在线| www.av精品| 日韩午夜激情av| 国产精品电影一区二区三区| 日韩国产欧美视频| av电影一区二区| 日韩女优制服丝袜电影| 国产精品超碰97尤物18| 免费人成黄页网站在线一区二区| 成人午夜激情影院| 欧美一区二区三区小说| 国产精品成人免费| 韩国av一区二区三区| 欧美在线综合视频| 久久精品网站免费观看| 日韩国产欧美在线观看| 91丨porny丨蝌蚪视频| www久久精品| 天天影视色香欲综合网老头| 91在线观看污| 欧美成人高清电影在线| 樱花草国产18久久久久| 成人一道本在线| 日韩一区二区影院| 亚洲一区在线播放| 国产成人精品一区二区三区四区 | 亚洲一区av在线| 日韩免费视频一区| 一区二区三区四区在线| 国产乱国产乱300精品| 欧美男同性恋视频网站| 亚洲免费观看高清完整版在线| 国产综合色产在线精品| 91精品国产免费| 亚洲国产中文字幕在线视频综合| av在线这里只有精品| 国产亚洲综合在线| 国产精品资源站在线| 欧美不卡一区二区三区四区| 亚洲va天堂va国产va久| 91啦中文在线观看| 成人免费小视频| a在线播放不卡| 国产精品美女视频| 成人午夜av影视| 国产精品污网站| 国产精品1区二区.| 国产日韩欧美不卡在线| 国产九色精品成人porny| 日韩一区二区三| 美国欧美日韩国产在线播放| 91麻豆精品国产综合久久久久久| 亚洲国产精品久久久男人的天堂 | 中文字幕亚洲精品在线观看| 粉嫩aⅴ一区二区三区四区五区| 久久婷婷成人综合色| 激情综合色播激情啊| 久久综合色鬼综合色| 国产精品自在欧美一区| 国产欧美精品在线观看| 国产91精品露脸国语对白| 国产欧美日韩在线| 成人黄色免费短视频| 亚洲欧洲制服丝袜| 亚洲欧美在线视频| 9l国产精品久久久久麻豆| 亚洲人成在线观看一区二区| 色一情一乱一乱一91av| 亚洲一区在线观看免费| 日韩欧美亚洲一区二区| 国产精品自拍一区| 亚洲精品国产一区二区三区四区在线 | 亚洲成年人影院| 欧美一级生活片| 国产一区二区三区精品欧美日韩一区二区三区 | 一区二区日韩av| 久久午夜电影网| 亚洲欧洲精品天堂一级| 奇米影视在线99精品| 欧美日韩亚洲高清一区二区| 日韩1区2区3区| 国产精品私人影院| 欧美综合一区二区| 精品在线观看视频| 亚洲日本丝袜连裤袜办公室| 欧美精品久久一区二区三区|