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

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

?? klt.c

?? feret人臉圖象數(shù)據(jù)庫處理代碼
?? C
字號:
/*----------------------------------------------------------------------PROGRAM: klt.cDATE:    10/24/93AUTHOR:  Baback Moghaddam         baback@media.mit.edu------------------------------------------------------------------------Performs the Discrete Karhunen-Loeve Transform to compute the set ofeigenimages for a set of images.The mean float image is written to the output directory as data0and the remaining eigenimages are named data1, data2 .... dataN.------------------------------------------------------------------------ */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <float.h>#include "util.h"#include "io.h"/* ----------- CONFIGURES ---------------- *//* ----------- Command-Line Parsing Stuff ------- */extern int optind;extern char *optarg;char *progname;          /* used to store the name of the program  */char comline[170];       /* used to store the entire command line  */#define OPTIONS "i:l:o:n:t:"char *usage = "-i indir -l list -o outdir [-n #_of_eigvecs] [-t descriptor_dir]\n";char *help="\Computes the Discrete KLT for a set of images\n\n\-i indir  \t input directory\n\-l list   \t ASCII file listing indir files to be used (one per line)\n\-o outdir \t output directory\n\-n integer\t computes (and writes) the first n eigenvectors only\n\-t desc_dir\t directory containing descriptor file (default = indir)\n";/* --------- Function Prototypes ---------- */int compute_covariance(float ***data, int N, int nrow, int ncol, 		       float **mean, float **Cov);int compute_eigenvectors(float **Cov, int N, float *D, float **V); int compute_eigenimages(float ***data, int N, int nframe,			int nrow, int ncol, float **V);/* -------- Globals ---------------- */#define MAX_CHARS 256/* ------- Command Line Defaults ------------- *//*----------------------------------------------------------------------*//* ---------------------------- MAIN ---------------------------------- */main(int argc, char *argv[]){  int i, j, f, c, nframe, sets, channels, bytes_pixel;  int nrow, ncol, nrotations;  char command[MAX_CHARS],indir[MAX_CHARS],infile[MAX_CHARS],       listfile[MAX_CHARS],outdir[MAX_CHARS],descdir[MAX_CHARS],       line[MAX_CHARS],filename[MAX_CHARS];  float ***images, **meanimage;  float *D, **V, **Cov;  FILE *fp;  /* required input flags */    int errflag   = 0;  int inflag    = 0;  int outflag   = 0;  int listflag  = 0;  /* command line defaults */    int nframe_out_select = 0;  int nframe_out;  int desc_flag = 0;  /* setup program name and command line strings */    progname = argv[0];  for (i=0; i<argc; i++)    strcat(comline, argv[i]),strcat(comline, " ");      /* ----------------------  Command Line Parse ------------------------ */    while ((c = getopt(argc, argv, OPTIONS)) != EOF)    switch (c) {          case 'i':      strcpy(indir, optarg);      inflag = 1;      break;          case 'l':      strcpy(listfile, optarg);      listflag = 1;      break;    case 'o':      strcpy(outdir, optarg);      outflag = 1;      break;    case 'n':      nframe_out = atoi(optarg) + 1;   /* this way optarg is # of ev's */      nframe_out_select = 1;      break;    case 't':     strcpy(descdir, optarg);      desc_flag = 1;      break;    case '?':      errflag = 1;      break;          }      /* command line error check */    if (errflag || !inflag || !outflag || !listflag) {    fprintf(stderr,"\nUSAGE: %s %s\n%s\n", progname, usage, help);    exit(1);  }    /* ----  read DAT-file parameters and Images -------- */    /* read_descriptor(indir, &nframe, &sets, &bytes_pixel, &ncol, &nrow); */  if (desc_flag == 0)    read_descriptor2(indir, &nframe, &sets, &channels, 		     &bytes_pixel, &ncol, &nrow);  else    read_descriptor2(descdir, &nframe, &sets, &channels, 		     &bytes_pixel, &ncol, &nrow);    if (sets>1)     myerror("Input files must be single-set DAT files!");    /* ---  read listfile ------- */    if ((fp = fopen(listfile, "r")) == NULL) {    fprintf(stderr,"ERROR: Could not open list file %s \n\n", listfile);    exit(1);  }  nframe = 0;  while (fgets(line, MAX_CHARS, fp))    if (strncmp(line, "#", 1) != 0 && strlen(line)>1)       nframe++;  rewind(fp);  if (nframe_out_select==0)    nframe_out = nframe;  if (nframe_out>nframe)    myerror("Can't print more Eigenimages than used in Computation!");  /* ---- read in images ------- */  images = f3tensor(0, nframe-1, 1, nrow*channels, 1, ncol);  f = 0;  while (fgets(line, MAX_CHARS, fp)) {    if (strncmp(line, "#", 1) != 0 && strlen(line)>1) {      sscanf(line, "%s", infile);      sprintf(filename, "%s/%s", indir, infile);      if (bytes_pixel==1)	read_RAW(filename, images[f], nrow*channels, ncol);      if (bytes_pixel==4) 	read_RAW_float(filename, images[f], nrow*channels, ncol);      f++;    }  }  fprintf(stdout,"Read %d  %d-by-%d  %d-channel %s files from %s/\n",	  f, nrow, ncol, channels, (bytes_pixel==4 ? "float":"uchar"), indir);  /* ----  write output descriptor file in outdir ---- */  /* write_descriptor(outdir, nframe_out, ncol, nrow, 4, comline); */  write_descriptor2(outdir, nframe_out, 1, channels, ncol, nrow, 4, comline);     /* ---- compute covariance matrix and mean images ---- */  meanimage = matrix(1, nrow*channels, 1, ncol);  Cov = matrix(1, nframe, 1, nframe);  compute_covariance(images, nframe, nrow*channels, ncol, meanimage, Cov);  fprintf(stdout,"Computed %d-by-%d covariance matrix\n",	  nframe, nframe);    /* ---- compute sorted eigenvectors of Cov ----- */  D = vector(1, nframe);  V = matrix(1, nframe, 1, nframe);  nrotations = compute_eigenvectors(Cov, nframe, D, V);   fprintf(stdout,"Computed eigenvectors:  %d jacobi() rotations\n",	  nrotations);  /* ---- compute eigenimages from the eigenvectors ---- */    compute_eigenimages(images, nframe_out, nframe, nrow*channels, ncol, V);  fprintf(stdout,"Computed %d eigenimages\n", nframe_out-1);  /* ---- write results to output directory -------- */  sprintf(filename,"%s/data0",outdir);  write_RAW_float(filename, meanimage, nrow*channels, ncol);  for (f=0; f<nframe_out-1; f++) {    sprintf(filename,"%s/data%d",outdir,f+1);    write_RAW_float(filename, images[f], nrow*channels, ncol);  }  fprintf(stdout,"Wrote %d  %d-by-%d  %d-channel float files to %s\n", 	  nframe_out, nrow, ncol, channels, outdir);  /* ----- write eigenvalues to eigenvalues ------- */  sprintf(filename,"%s/eigenvalues",outdir);  if ((fp = fopen(filename,"w")) == NULL) {    fprintf(stderr,"ERROR: Couldn't open eigenvalue file: %s\n", filename);    exit(1);  }  /* ---- FIX: set last eigenvalue to zero (cuz it's junk!) --- */  D[nframe] = 0.0;  for (i=1; i<=nframe; i++)     fprintf(fp,"%e\n", D[i]);  fprintf(stdout,"Wrote eigenvalues as %d-by-1 ASCII file to %s\n",	  nframe, filename);  fclose(fp);  /* --- free up allocated matrices ----- */  free_vector(D, 1, nframe);  free_matrix(V, 1, nframe, 1, nframe);  free_matrix(Cov, 1, nframe, 1, nframe);  free_f3tensor(images, 0, nframe-1, 1, nrow*channels, 1, ncol);  free_matrix(meanimage, 1, nrow*channels, 1, ncol);  return 0;}/*------------------------------------------------------------------- *//* -------------------- end of main() ------------------------------- *//*------------------------------------------------------------------- */int compute_covariance(float ***data, int N, int nrow, int ncol, 		       float **mean, float **Cov)/* NOTE: This routine will subtract the mean from the orginal sequence */{  register int i,j,k,l;  float sum = 0.0;  for (i=1; i<=nrow; i++)    for (j=1; j<=ncol; j++) {      for (k=0, sum=0.0; k<N; k++)	sum += data[k][i][j];      mean[i][j] = sum/N;      for (k=0; k<N; k++)	data[k][i][j] -= mean[i][j];    }  for (i=1; i<=N; i++)    for (j=i; j<=N; j++) {      sum = 0.0;      for (k=1; k<=nrow; k++)	for (l=1; l<=ncol; l++) 	  sum += (data[i-1][k][l] * data[j-1][k][l]);      Cov[i][j] = Cov[j][i] = sum/N;    }  return 0;}/*----------------------------------------------------------------------*/int compute_eigenvectors(float **Cov, int N, float *D, float **V)/* computes sorted eigenvectors for the covariance matrix Cov using   the Numerical Recipes routines jacobi() and eigsrt()               */{  int nrotations;    jacobi(Cov, N, D, V, &nrotations);  eigsrt(D, V, N);  return nrotations;}/*----------------------------------------------------------------------*/int compute_eigenimages(float ***data, int N, int nframe, 			int nrow, int ncol, float **V)/* computes a set of N eigenimages using the original data (mean-subtracted)   and the eigenvectors V of the covariance matrix                              NOTE: This routine overwrites the data tensor with the eigenimages  */{  register int i,j,k,l;  float sum, *v;    v = vector(0, N-1);  for (i=1; i<=nrow; i++)    for (j=1; j<=ncol; j++) {       for (k=0; k<N; k++) {	for (l=0, sum=0.0; l<nframe; l++)	  sum += (V[l+1][k+1] * data[l][i][j]);	v[k] = sum;      }      for (k=0; k<N; k++)	data[k][i][j] = v[k];    }  /* now normalize them */    for (k=0; k<N; k++) {    for (i=1, sum=0.0; i<=nrow; i++)      for (j=1; j<=ncol; j++) 	sum += SQR(data[k][i][j]);    sum = sqrt(sum);    if (sum>(10*FLT_MIN)) {      for (i=1; i<=nrow; i++)	for (j=1; j<=ncol; j++) 	  data[k][i][j] /= sum;    }  }   free_vector(v, 0, N-1);  return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合狠狠综合久久激情| 亚洲人妖av一区二区| 日韩欧美不卡在线观看视频| 久久亚洲精华国产精华液| 国产精品成人在线观看| 亚洲r级在线视频| 黑人巨大精品欧美一区| 99国产精品久久久久久久久久久 | 精品成人a区在线观看| 国产精品区一区二区三区| 午夜精品影院在线观看| 国模无码大尺度一区二区三区| 久久er精品视频| 午夜精品久久久久久久久| 精品在线你懂的| 91在线码无精品| 亚洲色图欧洲色图婷婷| 久久久久久久免费视频了| 美腿丝袜在线亚洲一区| 国产精品99久久久久久有的能看 | 国产亚洲一区二区三区四区| 亚洲精品成人少妇| 精品一区二区三区在线播放| 色综合久久天天| 久久亚洲一级片| 亚洲va欧美va天堂v国产综合| 国产毛片一区二区| 欧美日韩国产不卡| 国产精品麻豆欧美日韩ww| 日韩和的一区二区| 蜜臀91精品一区二区三区| 不卡视频一二三四| 精品美女在线观看| 亚洲一区免费观看| 成人福利在线看| 精品精品国产高清a毛片牛牛 | 色婷婷av一区二区三区之一色屋| 精品噜噜噜噜久久久久久久久试看| 日韩精品一区二| 色猫猫国产区一区二在线视频| 欧美精品粉嫩高潮一区二区| 日韩精品专区在线| 国产拍揄自揄精品视频麻豆| 午夜伦欧美伦电影理论片| 成人av小说网| www久久久久| 美女www一区二区| 欧美剧情片在线观看| 亚洲老司机在线| 99re这里只有精品首页| 国产精品色呦呦| 国产精品一二三在| 激情综合网最新| 亚洲视频在线观看三级| 国产风韵犹存在线视精品| 欧美一区二区三区四区在线观看| 亚洲精品综合在线| www.在线成人| 国产精品另类一区| 成人一区在线观看| 中文字幕第一页久久| 国产精品水嫩水嫩| 国产丝袜欧美中文另类| 免费看欧美女人艹b| 欧美亚一区二区| 亚洲图片激情小说| 91麻豆精东视频| 国产精品美女久久久久久久久久久 | 在线成人av网站| 亚洲在线一区二区三区| 91福利国产精品| 亚洲一区国产视频| 欧美日韩电影在线| 三级久久三级久久久| 91精品国产91久久久久久一区二区| 亚洲成人免费在线观看| 欧美精品aⅴ在线视频| 奇米影视一区二区三区| 91.麻豆视频| 国产精品1区2区| 国产乱子伦一区二区三区国色天香| 欧美日韩高清一区二区三区| 午夜欧美电影在线观看| 欧美精品亚洲二区| 蜜臀久久99精品久久久久宅男 | 精品一区二区三区日韩| 欧美精品一区二区三区四区| 狠狠色丁香久久婷婷综合_中| 久久婷婷久久一区二区三区| 成人综合在线视频| 亚洲激情av在线| 91.com视频| 国产精品自拍网站| 亚洲天天做日日做天天谢日日欢| 欧美性一二三区| 免费成人在线视频观看| 日本一区二区三区在线观看| 91社区在线播放| 偷窥少妇高潮呻吟av久久免费| 91精品国产综合久久久蜜臀图片| 久久99精品国产| 国产精品美女一区二区| 欧美日韩亚洲丝袜制服| 激情欧美一区二区三区在线观看| 中文字幕av一区二区三区免费看 | 亚洲精品亚洲人成人网在线播放| 欧美日韩视频一区二区| 国产自产高清不卡| 亚洲四区在线观看| 91精品国产色综合久久久蜜香臀| 国内欧美视频一区二区| 亚洲美女免费视频| 日韩精品专区在线| 99精品久久只有精品| 日韩高清不卡一区二区三区| 国产亚洲视频系列| 欧美天堂一区二区三区| 国产精品1区2区3区在线观看| 日本人妖一区二区| 丁香六月久久综合狠狠色| 亚洲自拍偷拍九九九| 精品免费99久久| 91久久精品国产91性色tv| 免费高清视频精品| 国产传媒日韩欧美成人| 在线亚洲人成电影网站色www| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲视频中文字幕| 日韩精品中文字幕在线一区| 91丨porny丨最新| 久久99精品国产麻豆婷婷洗澡| 亚洲日本青草视频在线怡红院 | 麻豆精品新av中文字幕| 国产精品污污网站在线观看| 在线精品视频一区二区| 国产精品资源在线看| 亚洲丶国产丶欧美一区二区三区| 国产视频亚洲色图| 欧美一区二区精品| 在线一区二区视频| 成人午夜av影视| 精品影院一区二区久久久| 亚洲国产精品欧美一二99| 中文字幕免费不卡| 欧美成人一区二区三区| 在线观看视频91| 成人免费视频caoporn| 首页国产丝袜综合| 国产精品网站一区| 欧美va亚洲va在线观看蝴蝶网| 欧美性大战久久久久久久蜜臀| 国产福利一区在线| 美女高潮久久久| 午夜精品aaa| 一区二区激情视频| 中国av一区二区三区| 久久精品视频一区二区| 日韩精品中文字幕在线不卡尤物| 欧美午夜精品理论片a级按摩| 不卡一区中文字幕| 国产精品一区二区x88av| 久久国产乱子精品免费女| 午夜av一区二区三区| 亚洲综合免费观看高清完整版| 国产精品视频九色porn| 国产日韩欧美精品综合| 久久综合久久综合九色| 日韩精品在线网站| 日韩欧美亚洲另类制服综合在线| 欧美美女激情18p| 欧美日本免费一区二区三区| 色综合久久久久网| 欧美亚洲综合另类| 国产九色sp调教91| 久久激五月天综合精品| 日韩不卡手机在线v区| 亚洲国产视频直播| 亚洲国产精品天堂| 亚洲午夜私人影院| 亚洲国产精品综合小说图片区| 亚洲精品成人少妇| 一区二区三区四区不卡视频| 一区二区三区中文免费| 一区二区三区四区精品在线视频| 亚洲精品视频一区| 一区2区3区在线看| 五月天欧美精品| 人人狠狠综合久久亚洲| 日韩av网站在线观看| 美国av一区二区| 国产一区二区美女| 久久99精品国产.久久久久| 韩国精品久久久| 高清视频一区二区| 99在线精品视频| 欧美亚洲免费在线一区| 欧美性做爰猛烈叫床潮| 欧美一级黄色录像| 久久久久国产一区二区三区四区 | 国产成人精品在线看|