SFS(Shape from shading) Tsai 所有论文,代码,测试图片


sfs shape from shading 由阴影到形状 tsai 的三篇论文以及代码,试验用图片。
资源截图
代码片段和文件信息
#include 
//#include 
//#include 
#include 
#include 
#include “ImageTools.h“

#include “UCFReadPic.c“

#define SSize 256

struct rusage rusage;
long btsbtmetsetm;






main()
{
 char   filename[80];
 FILE   *outfile*infile;
 int ijIiterSize;
 float SxSySzPsQspqpqPQsfZdfZEijWn=0.0001*0.0001YK;
 float Zn[SSize][SSize]Zn1[SSize][SSize]Si1[SSize][SSize]Si[SSize][SSize];
 PIC pic1;

 /* for synthetic images usually 1 or 2 iterations are enough */
 printf(“Input number of iterations : “);
 scanf(“%d“&iter);

 printf(“Input size of image : “);
 scanf(“%d“&Size);
 if(Size > 256)
 {
  printf(“Image size too large!
“);
  exit(1);
 }

/* assume the initial estimate zero at time n-1 */
 for(i=0;i  for(j=0;j   Zn1[i][j] = 0.0;
   Si1[i][j] = 1.0; }

 printf(“Input the image filename : “);
 scanf(“%s“filename);
 if((infile = fopen(filename“r“)) == NULL)
 {
  fprintf(stderr“Error Opening file : %s
“filename);
  exit(1);
 }
 pic1 = UCFReadPic(infile);
 printf(“
Input the light source direction : 
“);

 printf(“
Sx = “);
 scanf(“%f“&Sx);
 printf(“
“);
 printf(“Sy = “);
 scanf(“%f“&Sy);
 printf(“
“);
 printf(“Sz = “);
 scanf(“%f“&Sz);
 printf(“
“);
 if(Sx == 0 && Sy == 0) Sx = Sy = 0.01;
 Ps = Sx/Sz;
 Qs = Sy/Sz;

/************************************************************************/
getrusage(0&rusage);
bts = rusage.ru_utime.tv_sec;
btm = rusage.ru_utime.tv_usec;

 for(I=1;I<=iter;I++){
  for(i=0;i   for(j=0;j    if(j-1 < 0 || i-1 < 0) /* take care boundary */
      p = q = 0.0;
    else {
          p = Zn1[i][j] - Zn1[i][(j-1)];
          q = Zn1[i][j] - Zn1[i-1][j]; }
    pq = 1.0 + p*p + q*q;
    PQs = 1.0 + Ps*Ps + Qs*Qs;
    Eij = pic1.image[i*pic1.maxX+j]/255.0;
    fZ = -1.0*(Eij - MAX(0.0(1+p*Ps+q*Qs)/(sqrt(pq)*sqrt(PQs))));
    dfZ = -1.0*((Ps+Qs)/(sqrt(pq)*sqrt(PQs))-(p+q)*(1.0+p*Ps+q*Qs)/
                       (sqrt(pq*pq*pq)*sqrt(PQs))) ;
    Y = fZ + dfZ*Zn1[i][j];
    K = Si1[i][j]*dfZ/(Wn+dfZ*Si1[i][j]*dfZ);
    Si[i][j] = (1.0 - K*dfZ)*Si1[i][j]; 
    Zn[i][j] = Zn1[i][j] + K*(Y-dfZ*Zn1[i][j]);}

  for(i=0;i   for(j=0;j    Zn1[i][j] = Zn[i][j];
    Si1[i][j] = Si[i][j];}
 }
getrusage(0&rusage);
ets = rusage.ru_utime.tv_sec;
etm = rusage.ru_utime.tv_usec;

printf(“ %ld sec.  %ld usec. 
“ets-btsetm-btm);

  printf(“
Output depth map !
“);
  sprintf(filename“final.out“);
  outfile = fopen(filename“w“);
  for(i=0;i   for(j=0;j    fprintf(outfile“%f
“Zn[i][j]);
  fclose(outfile);
} /* end of main */



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      12626  2000-01-31 20:26  Source_CodesBPentlandpent.c

     文件         44  2000-01-31 21:21  Source_CodesBPentlandReadme

     文件       4749  2000-01-31 20:33  Source_CodesHornhorn.c

     文件         42  2000-01-31 21:21  Source_CodesHornReadme

     文件       1780  2008-10-22 17:09  Source_CodesImageTools.h

     文件      17346  2000-01-31 20:46  Source_CodesLKuocalc_C.c

     文件       1283  2000-01-31 20:46  Source_CodesLKuocreate_image.c

     文件        289  1994-06-09 03:12  Source_CodesLKuoDEF.h

     文件       1436  1994-06-09 03:12  Source_CodesLKuoGSI.c

     文件       1439  1994-06-09 03:12  Source_CodesLKuoGSI2.c

     文件       1166  1994-06-09 03:12  Source_CodesLKuointerp.c

     文件       2328  2000-01-31 20:46  Source_CodesLKuoinverse.c

     文件        477  1994-06-09 03:12  Source_CodesLKuoload_depth.c

     文件        667  2000-01-31 20:41  Source_CodesLKuomakefile

     文件      64839  2000-01-31 20:51  Source_CodesLKuomultigrid

     文件       3104  1994-06-09 03:12  Source_CodesLKuomultigrid.bak

     文件       5538  2000-01-31 20:39  Source_CodesLKuomultigrid.c

     文件        349  1994-11-21 17:11  Source_CodesLKuo
rutil.h

     文件     619520  1995-06-14 20:59  Source_CodesLKuoout00-00.dep

     文件      65548  1995-06-14 20:58  Source_CodesLKuoout00-00.img

     文件     619520  1995-06-14 20:59  Source_CodesLKuoout00.dep

     文件      65548  1995-06-14 20:59  Source_CodesLKuoout00.img

     文件        852  2000-01-31 20:43  Source_CodesLKuo
eadimg.c

     文件         22  2000-01-31 21:19  Source_CodesLKuoReadme

     文件        784  1994-06-09 03:12  Source_CodesLKuo
esidual.c

     文件        646  1994-06-09 03:12  Source_CodesLKuo
strct.c

     文件      10212  2000-01-31 21:00  Source_CodesLRoslros.c

     文件         42  2000-01-31 21:21  Source_CodesLRosReadme

     文件      11467  2000-01-31 21:18  Source_CodesPentlandpentland.c

     文件         50  2000-01-31 21:22  Source_CodesPentlandReadme

............此处省略62个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)