亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美一区二区在线看| 日韩欧美国产不卡| 91精品福利在线一区二区三区 | 久久久亚洲精品一区二区三区| 亚洲丝袜另类动漫二区| 日韩av二区在线播放| av高清不卡在线| 精品99久久久久久| 日韩电影在线观看电影| 在线视频观看一区| 中文字幕在线观看不卡| 韩国一区二区三区| 欧美一级二级三级乱码| 亚洲综合男人的天堂| 99天天综合性| 中文在线一区二区 | 国产精品1区二区.| 91精品国产综合久久久久久漫画 | 青青青爽久久午夜综合久久午夜| 国产精品1024久久| 精品福利av导航| 美女免费视频一区二区| 欧美精品一二三区| 偷拍亚洲欧洲综合| 欧美日韩成人高清| 亚洲主播在线播放| 在线看国产一区二区| 一区二区不卡在线视频 午夜欧美不卡在 | 精品在线视频一区| 欧美一区二区三区白人| 日韩av二区在线播放| 在线观看91av| 蜜臀av性久久久久蜜臀aⅴ| 91麻豆精品国产91久久久久久久久| 亚洲国产成人高清精品| 在线视频欧美精品| 五月婷婷色综合| 在线不卡的av| 奇米色777欧美一区二区| 日韩一二三区不卡| 日韩精品欧美精品| 亚洲精品在线观看视频| 国产传媒一区在线| 亚洲欧洲一区二区在线播放| 99re这里只有精品首页| 亚洲另类在线制服丝袜| 欧美午夜精品久久久| 男人的j进女人的j一区| 精品国产第一区二区三区观看体验| 久久99精品久久久久久国产越南 | 国产亚洲综合性久久久影院| 久久se精品一区精品二区| 久久久777精品电影网影网| 国产成人在线影院| 综合在线观看色| 欧美日韩一区二区三区视频| 乱一区二区av| 1000部国产精品成人观看| 欧美亚洲国产一区在线观看网站| 日本在线观看不卡视频| 国产午夜精品理论片a级大结局| 天堂一区二区在线免费观看| 日日夜夜精品视频免费| 欧美成人精品福利| 成人免费看黄yyy456| 亚洲高清久久久| 久久久久久久久久久久久女国产乱| 不卡一区中文字幕| 日本午夜精品一区二区三区电影| 久久久噜噜噜久久人人看| 日本黄色一区二区| 狠狠色丁香婷婷综合久久片| 亚洲精品一二三| 精品美女在线播放| 91久久精品一区二区三区| 极品少妇xxxx精品少妇| 亚洲亚洲精品在线观看| 久久久久久毛片| 91精品国产综合久久福利软件| 成人av电影在线观看| 日本午夜一本久久久综合| 成人免费在线视频| 久久久久国产精品厨房| 欧美剧在线免费观看网站| 成人黄色在线网站| 激情小说欧美图片| 午夜精品一区在线观看| 中文字幕欧美国产| 精品少妇一区二区三区免费观看| 91成人网在线| av一区二区三区在线| 国产一区二区0| 久久av资源站| 丝袜亚洲另类欧美| 亚洲综合清纯丝袜自拍| 亚洲欧洲日产国码二区| 国产清纯白嫩初高生在线观看91 | 一区二区三区四区不卡视频| 久久久精品日韩欧美| 欧美一区二区三区在线看| 在线亚洲一区二区| 99国产精品久久久久久久久久| 国产成人综合视频| 激情久久久久久久久久久久久久久久| 亚洲最大成人网4388xx| 亚洲黄色免费电影| 亚洲欧洲av一区二区三区久久| 欧美国产禁国产网站cc| 国产丝袜欧美中文另类| 久久久影院官网| 国产偷v国产偷v亚洲高清| 国产三级欧美三级| 国产性天天综合网| 欧美经典一区二区| 欧美国产一区二区| 国产精品大尺度| 成人免费在线播放视频| 最新不卡av在线| 玉米视频成人免费看| 一区二区三区四区国产精品| 亚洲一二三四久久| 亚欧色一区w666天堂| 三级不卡在线观看| 美女高潮久久久| 国产成人免费在线观看不卡| 国产xxx精品视频大全| 成人动漫av在线| 在线视频综合导航| 91精品国产综合久久久久久漫画 | 在线观看一区日韩| 欧美日韩成人在线| 欧美一级高清大全免费观看| 精品国产伦一区二区三区观看体验 | 99r国产精品| 欧美亚洲一区二区三区四区| 欧美日韩亚洲高清一区二区| 欧美一区二区三区影视| xfplay精品久久| 亚洲色图丝袜美腿| 午夜日韩在线电影| 国产一区二区按摩在线观看| 色综合天天综合网国产成人综合天| 欧美中文字幕一二三区视频| 欧美电影免费观看高清完整版在| 久久麻豆一区二区| 亚洲综合偷拍欧美一区色| 美日韩一级片在线观看| zzijzzij亚洲日本少妇熟睡| 欧美日韩国产一级二级| 久久综合久久99| 亚洲免费资源在线播放| 日韩福利电影在线| 成人av电影免费在线播放| 制服丝袜中文字幕一区| 中文在线一区二区| 日本欧美一区二区三区乱码| av一区二区久久| 日韩欧美一区二区在线视频| 国产精品国产三级国产| 日韩av中文字幕一区二区| 成人av资源在线观看| 91精品国产91热久久久做人人| 国产精品大尺度| 国产一区二区三区| 欧洲生活片亚洲生活在线观看| 久久综合狠狠综合久久激情| 亚洲成在线观看| 成人午夜电影网站| 精品少妇一区二区| 亚洲国产美国国产综合一区二区| 成人三级在线视频| 欧美va在线播放| 亚洲午夜激情av| 99久久婷婷国产综合精品| 久久尤物电影视频在线观看| 三级久久三级久久| 欧美性欧美巨大黑白大战| 亚洲国产精品传媒在线观看| 久久91精品久久久久久秒播| 欧美亚洲日本一区| 一区二区三区色| 91免费看片在线观看| 国产亚洲综合在线| 国内外成人在线| 精品少妇一区二区| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩不卡在线| 亚瑟在线精品视频| 欧美日韩一区二区三区免费看| 亚洲伦理在线精品| 一本色道a无线码一区v| 专区另类欧美日韩| 91美女片黄在线| 亚洲欧美日韩中文播放 | 亚洲欧洲一区二区在线播放| 国产高清久久久| 日本一区二区三级电影在线观看| 国内成人自拍视频| 国产性天天综合网| 成人免费毛片片v|