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

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

?? uras.c

?? this program, opticalflow.c, is an implementation of Uras et al. 1988 s motion
?? C
?? 第 1 頁 / 共 5 頁
字號:
#include <math.h>#include <stdio.h>#include <fcntl.h>/*            NAME : const.h    PARAMETER(S) : none         PURPOSE : Definition of the constants for the                   implementation of Uras' motion                   detection approach.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : September 13 1990*/#define TRUE        1#define FALSE       0#define NO_REG      0#define TR1         1#define TR2         2#define PI          3.14159#define H           32#define SMSK        5#define REGION_SIZE 8#define X           316#define Y           316#define Z           20#define DEF_S1      3.0 #define DEF_S2      1.5#define DEF_S3      3.0#define N_HISTO     4#define N_BINS      100#define MAX_COND    100000.0#define NRADIUS     4#define SKIP        1#define MAXFLOW      20.0#define NO_ERROR     0#define SA_OVERFLOW  1#define NO_FLOW      2/*            NAME : type.h    PARAMETER(S) : none         PURPOSE : Type definitions for images                  and related data structures.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : September 13 1990*/typedef struct t_raster {                          int m, width, height, depth, length,                              type, maptype, maplength ;                        } raster_t ;typedef struct t_beaudet {                           float g[SMSK][SMSK] ;                           float f ;                           int m ;                         } beaudet_t ;typedef struct t_kernel {                          float k[X], f ;                          int m ;                        } kernel_t ;typedef struct t_disp_vect {                             float x, y ;                             } disp_vect_t ;typedef struct t_param {                         float fxx, fyy, fxy, ft, fxt, fyt, fx, fy,                                discr, gauss, cond ;                         int err ;                       } param_t ;typedef struct t_pos { int i, j ; } pos_t ;typedef disp_vect_t disp_field512_t[X*Y] ;typedef param_t param512_t[X*Y] ;typedef float image512_t[X*Y] ;typedef struct t_qnode {                         int             res, sizx, sizy, sizz, ofst, level ;                         image512_t      *gauss_ptr[Z] ;                         param512_t      *param_ptr[Z] ;                         disp_field512_t *flow_ptr ;                         struct t_qnode  *forth, *back ;                       } qnode_t, *qnode_ptr_t ;typedef struct t_histo {                         float std, avg ;                         int   freq ;                       } histo_t ;/*            NAME : str.h   PARAMETER(S) : none         PURPOSE : Definitions of constants and types for                   string manipulation.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : June 25 1990*/#define STRLENGTH 80typedef char string[STRLENGTH] ;/*            NAME : extvar.h   PARAMETER(S) : none         PURPOSE : declaration of external variables; all                  masks are external.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : September 13 1990*/beaudet_t Ix, Iy, Ixx, Ixy ;kernel_t ker1, ker2, ker3, C ;int KERNEL_X, KERNEL_Y ;/*            NAME : concat(s1,s2,s3) ;   PARAMETER(S) : s1, s2 : strings to concat;                      s3 : output string.         PURPOSE : Concats s1 and s2 into s3.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : June 25 1990*/concat(s1,s2,s3)string s1, s2, s3 ;{ string t ;  int i, j ;  for (i = 0 ; (t[i] = s1[i]) != '\0' ; i++) ;  for (j = i ; (t[j] = s2[j - i]) != '\0' ; j++) ;  t[j] = '\0' ;  for (i = 0 ; i <= j ; i++) {    s3[i] = t[i] ;  }}/*            NAME : condition(loc,f)   PARAMETER(S) : loc : location on flow;                    f : flow pointer.         PURPOSE : returns condition number of estimate at loc in f         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : November 7 1990*/float condition(loc,f)pos_t loc ;qnode_ptr_t f ;{ float cond ;  if ((loc.i != -1) && (loc.j != -1)) {    cond = (*f->param_ptr[f->sizz/2])[f->res*loc.i + loc.j].cond ;  }  else {    cond = 0.0 ;  }  return(cond) ;}/*            NAME : convolve(c1,c2,ker1,ker2,n)   PARAMETER(S) :     c1,c2 : pointers on image cube nodes;                  ker1,ker2 : kernels  used for 3D convolution;                          n : number of image frames in cubes.         PURPOSE : Performs a 3D convolution on images of c1 in c2                  using 2 1D kernels.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : March 20 1990*/convolve(c1,c2,ker1,ker2,n)qnode_ptr_t c1, c2 ;kernel_t ker1, ker2 ;int n ;{ image512_t *t ;  float s ;  int i, j, k, l, h1, h2 ;  h2 = ker2.m/2 ;    for (k = h2 ; k < n - h2 ; k++) {    for (i = 0 ; i < c1->sizy ; i++) {      for (j = 0 ; j < c1->sizx ; j++) {        s = 0.0 ;        for (l = 0 ; l < ker2.m ; l++) {          s += (*c1->gauss_ptr[l+k-h2])[c1->res*i + j]*ker2.k[l] ;        }        (*c2->gauss_ptr[k-h2])[c2->res*i + j] = s/ker2.f ;      }    }  }  h1 = ker1.m/2 ;  for (k = h2 ; k < n - h2 ; k++) {    t = (image512_t *)malloc(sizeof(image512_t)) ;    for (i = 0 ; i < c2->sizy ; i++) {      for (j = h1 ; j < c2->sizx - h1 ; j++) {        s = 0.0 ;        for (l = 0 ; l < ker1.m ; l++) {          s += (*c2->gauss_ptr[k-h2])[c2->res*i + j+l-h1]*ker1.k[l] ;        }        (*t)[c2->res*i + j] = s/ker1.f ;      }    }      for (i = h1 ; i < c2->sizy - h1 ; i++) {      for (j = 0 ; j < c2->sizx ; j++) {        s = 0.0 ;        for (l = 0 ; l < ker1.m ; l++) {          s += (*t)[c2->res*(i+l-h1) + j]*ker1.k[l] ;        }        (*c2->gauss_ptr[k-h2])[c2->res*i + j] = s/ker1.f ;      }    }    free((image512_t *)t) ;  }  c2->ofst += h1 ;}/*            NAME : qnode_ptr_t create_node(l,r,sizx,sizy,sizz,ofst)    PARAMETER(S) :   l          : level in the pyramid;                    r          : resolution at level l;                    sizx, sizy : image size;                    sizz       : sequence length;                    ofst       : offset from image boundaries.         PURPOSE : Creation of a node with                   level l.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : March 17 1990*/qnode_ptr_t create_node(l,r,sizx,sizy,sizz,ofst)int l, r, sizx, sizy, sizz, ofst ;{ qnode_ptr_t p ;     p = (qnode_ptr_t)malloc(sizeof(qnode_t)) ;  p->res = r ;  p->sizx = sizx ;  p->sizy = sizy ;  p->sizz = sizz ;  p->ofst = ofst ;  p->level = l ;  return(p) ;}/*            NAME : delete_node(p,h,q)   PARAMETER(S) : p : pointer on the node to be deleted;                  h : head list pointer;                  q : tail list pointer.         PURPOSE : Deletion of the node pointed by p.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : March 17 1990*/delete_node(p,h,q)qnode_ptr_t p, *h, *q ;{ qnode_ptr_t s, t ;  s = p->back ;  t = p->forth ;  if (t != (qnode_ptr_t)NULL) {    t->back = s ;  }  else {    *q = s ;  }  if (s != (qnode_ptr_t)NULL) {    s->forth = t ;  }  else {    *h = t ;  }  free(p) ;}/*            NAME : determinant(loc,f)   PARAMETER(S) : loc : location on flow;                    f : flow pointer.         PURPOSE : returns determinant of estimate at loc in f         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : November 7 1990*/float determinant(loc,f)pos_t loc ;qnode_ptr_t f ;{ float det ;  if ((loc.i != -1) && (loc.j != -1)) {    det = (*f->param_ptr[f->sizz/2])[f->res*loc.i + loc.j].gauss ;  }  else {    det = 0.0 ;  }  return(det) ;}/*            NAME : dt(c,q,x,y)   PARAMETER(S) :      c : image cube node;                       q : image parameter node ;                    x, y : image location for computation.         PURPOSE : computes 1st order derivative with respect                  to time at x,y for middle image of cube c.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : October 1 1990*/float dt(c,q,x,y)qnode_ptr_t c, q ;int x, y ;{ extern kernel_t C ;  float d ;  int i, k, h ;  h = C.m/2 ;  k = c->sizz/2 ;  d = 0.0 ; for (i = -h ; i <= h ; i++) {    d += (*c->gauss_ptr[i+h])[c->res*x + y]*C.k[i+h] ;  }  d /= C.f ;  return(d) ;}/*            NAME : overflow(x,y,sizx,sizy,ofst,h,l)   PARAMETER(S) : x,y       : image coordinates ;                  sizx,sizy : image size;                  ofst      : offset from image boundaries;                    h       : even half size of odd masks applied;                    l       : number of mask applications.         PURPOSE : Returns TRUE if x,y in image,                   FALSE otherwise.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : July 23 1990*/int overflow(x,y,sizx,sizy,ofst,h,l) int x, y, sizx, sizy, ofst, h, l ;{  return((x < ofst + h*l) ||          (x >= sizx - (ofst + h*l)) ||          (y < ofst + h*l) ||          (y >= sizy - (ofst + h*l))) ;}/*            NAME : dux(p,x,y)   PARAMETER(S) : p : flow node;                x,y : flow location for computation.         PURPOSE : computes 1st order partial derviative with respect                  to x at x,y for component u of flow p.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : October 4 1990*/float dux(p,x,y)qnode_ptr_t p ;int x, y ;{ extern beaudet_t Ix ;  float d ;  int i, j, h ;  h = Ix.m/2 ;  d = 0.0 ;  if (!overflow(x,y,p->sizy,p->sizx,p->ofst,h,3)) {    for (i = -h ; i <= h ; i++) {      for (j = -h ; j <= h ; j++) {        d = d + (*p->flow_ptr)[p->res*(x+i) + y+j].x*Ix.g[i+h][j+h] ;      }    }  }  return(d/Ix.f) ;}/*            NAME : duy(p,x,y)   PARAMETER(S) : p : flow node;                x,y : flow location for computation.         PURPOSE : computes 1st order partial derviative with respect                  to y at x,y for component u of flow p.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : October 4 1990*/float duy(p,x,y)qnode_ptr_t p ;int x, y ;{ extern beaudet_t Ix ;  float d ;  int i, j, h ;    h = Ix.m/2 ;  d = 0.0 ;    if (!overflow(x,y,p->sizy,p->sizx,p->ofst,h,3)) {    for (i = -h ; i <= h ; i++) {      for (j = -h ; j <= h ; j++) {        d = d + (*p->flow_ptr)[p->res*(x+i) + y+j].x*Ix.g[j+h][i+h] ;      }    }  }  return(d/Ix.f) ;}/*            NAME : dvx(p,x,y)   PARAMETER(S) : p : flow node;                x,y : flow location for computation.         PURPOSE : computes 1st order partial derviative with respect                  to x at x,y for component v of flow p.         AUTHOR : Steven Beauchemin             AT : University of Western Ontario           DATE : October 4 1990*/float dvx(p,x,y)qnode_ptr_t p ;int x, y ;{ extern beaudet_t Ix ;  float d ;  int i, j, h ;  h = Ix.m/2 ;  d = 0.0 ;   if (!overflow(x,y,p->sizy,p->sizx,p->ofst,h,3)) {    for (i = -h ; i <= h ; i++) {      for (j = -h ; j <= h ; j++) {        d = d + (*p->flow_ptr)[p->res*(x+i) + y+j].y*Ix.g[i+h][j+h] ;      }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一卡二| 九色|91porny| 国产精品素人视频| 亚洲精品一区二区三区蜜桃下载 | 亚洲高清免费在线| 一区二区三区国产精品| 一区二区成人在线观看| 亚洲国产精品一区二区尤物区| 亚洲精品少妇30p| 亚洲线精品一区二区三区八戒| 夜夜操天天操亚洲| 五月婷婷色综合| 青青草伊人久久| 激情图片小说一区| 成人性视频网站| 色综合天天性综合| 欧美区在线观看| 欧美日韩成人一区| 欧美tickling网站挠脚心| 精品三级在线看| 国产精品视频你懂的| 亚洲男女毛片无遮挡| 日韩精品欧美精品| 国产精品一区二区不卡| 色综合天天狠狠| 欧美一级在线视频| 国产欧美一区在线| 亚洲一区视频在线| 精品中文字幕一区二区| 91最新地址在线播放| 欧美日韩国产欧美日美国产精品| 日韩一卡二卡三卡国产欧美| 久久久久久毛片| 亚洲成人资源在线| 国产成人在线观看免费网站| 91丨九色porny丨蝌蚪| 日韩一区二区精品在线观看| 国产精品色哟哟| 美国一区二区三区在线播放| 成人蜜臀av电影| 日韩午夜av电影| 日韩美女视频一区| 国产一区高清在线| 欧美日韩国产一区二区三区地区| 久久精品亚洲乱码伦伦中文 | 亚洲成人免费av| 成人午夜激情片| 欧美一区二区在线播放| 亚洲日韩欧美一区二区在线| 精品亚洲成a人| 8x福利精品第一导航| 综合欧美一区二区三区| 国产美女在线精品| 欧美精品在线观看一区二区| 中文字幕一区二区三区蜜月| 久久99精品久久久久久国产越南| 欧美午夜电影在线播放| 国产精品国产a级| 久久国产福利国产秒拍| 欧洲亚洲精品在线| 亚洲免费在线视频| kk眼镜猥琐国模调教系列一区二区| 欧美一级在线免费| 日韩高清一区二区| 欧美日韩国产乱码电影| 亚洲在线成人精品| 欧美偷拍一区二区| 一区二区三区在线观看国产| 99re在线精品| 亚洲精选免费视频| 色天使色偷偷av一区二区| 欧美极品美女视频| 成人午夜看片网址| 中文字幕在线观看不卡视频| 成人久久视频在线观看| 国产精品美女久久久久aⅴ| 国产米奇在线777精品观看| 国产日韩欧美亚洲| 成人va在线观看| 亚洲日本一区二区三区| 在线欧美小视频| 午夜精品福利一区二区三区av| 欧美日韩精品一区二区在线播放| 亚洲午夜久久久久久久久电影院| 欧美午夜理伦三级在线观看| 性做久久久久久久免费看| 69堂国产成人免费视频| 日本成人在线一区| 久久综合九色综合97婷婷| 国产成人亚洲综合a∨婷婷图片| 久久蜜桃av一区二区天堂| 国产麻豆视频精品| 国产精品全国免费观看高清| 色成人在线视频| 日本大胆欧美人术艺术动态| 欧美精品一区二| 国产精品一品视频| 亚洲在线一区二区三区| 日韩欧美在线一区二区三区| 国产美女av一区二区三区| 亚洲人成亚洲人成在线观看图片| 欧美这里有精品| 国产一区二区三区免费| 亚洲欧洲一区二区三区| 欧美日韩aaaaaa| 国产乱码字幕精品高清av| 亚洲欧美偷拍卡通变态| 91精品国产色综合久久不卡电影 | 中文字幕av在线一区二区三区| 菠萝蜜视频在线观看一区| 亚洲国产日韩精品| 久久久久久一二三区| 在线观看国产一区二区| 国产一区二区成人久久免费影院| 亚洲精品美国一| 精品国产一区二区在线观看| 91美女蜜桃在线| 国产一区二区免费在线| 一区二区三区四区高清精品免费观看| 日韩一区二区三区三四区视频在线观看| 国产夫妻精品视频| 五月天精品一区二区三区| 中文字幕免费不卡在线| 欧美日韩成人综合| 91丨porny丨最新| 极品尤物av久久免费看| 亚洲午夜影视影院在线观看| 国产精品欧美久久久久无广告| 欧美男人的天堂一二区| av亚洲精华国产精华精| 国产综合一区二区| 日本伊人午夜精品| 亚洲国产精品一区二区尤物区| 国产女人18水真多18精品一级做| 欧美日韩国产首页在线观看| 91网站在线观看视频| 国产精品911| 精品综合免费视频观看| 奇米四色…亚洲| 午夜精品久久久久久久99水蜜桃| 国产精品国产成人国产三级| 久久久久国产精品麻豆ai换脸 | 午夜影院久久久| 综合激情成人伊人| 欧美激情一区二区三区不卡| 日韩精品中午字幕| 欧美大尺度电影在线| 欧美日本在线播放| 精品婷婷伊人一区三区三| 在线观看日韩av先锋影音电影院| 99精品久久久久久| 91丨porny丨蝌蚪视频| 一本色道**综合亚洲精品蜜桃冫| 国产不卡视频在线播放| 国产高清亚洲一区| 国产成人av电影在线观看| 国产精品一二三在| 国产高清不卡二三区| 国产成人精品午夜视频免费| 国产成人精品免费| 成人听书哪个软件好| 成人av免费在线| 色中色一区二区| 色哟哟亚洲精品| 欧美日韩一区二区三区高清| 欧美精品第一页| 欧美成人精品高清在线播放| 精品99一区二区三区| 欧美精品一区二区三区视频| 国产欧美日韩卡一| 亚洲精品五月天| 日韩成人一区二区| 国产在线不卡一区| 99热精品国产| 欧美日韩精品综合在线| 欧美成人一区二区三区在线观看| 欧美精品一区男女天堂| 亚洲欧洲成人自拍| 亚洲成人动漫在线观看| 国内精品伊人久久久久影院对白| 国产传媒久久文化传媒| 色成年激情久久综合| 欧美一区二区在线观看| 亚洲国产高清在线观看视频| 一区二区三区四区av| 久久99精品久久久久久| 99久久国产综合精品女不卡| 欧美精品xxxxbbbb| 国产精品亲子乱子伦xxxx裸| 亚洲国产精品久久久久婷婷884| 精品一区二区三区影院在线午夜| 91蜜桃在线观看| 精品国产成人系列| 亚洲精品乱码久久久久久黑人| 麻豆精品久久久| 91在线观看免费视频| 精品久久久久香蕉网| 亚洲精品中文在线观看| 国产91综合网| 欧美一区二区视频观看视频|