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

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

?? interp.c

?? 3DMEDLIB - 三維醫學圖像開發源程序庫及范例
?? C
字號:
/***********************  interp.c  **************************************

	  3-D Reconstruction of Medical Images

	Three Dimensional Reconstruction Of Medical
	Images from Serial Slices - CT, MRI, Ultrasound


   These programs process a set of slices images (scans) for one
   patient. It outputs two sets of files containing nine predefined
   views of bony surfaces. One set contains distance values and
   the other gradient values.

   The distance values are used as 3-D spatial topographic surface
   coordinate maps for geometrical analysis of the scanned object.

   The gradient values are used for rendering the surface maps on
   CRT displays for subjective viewing where perception of small
   surface details is important.

	Daniel Geist, B.S.
	Michael W. Vannier, M.D.

	Mallinckrodt Institute of Radiology
	Washington University School of Medicine
	510 S. Kingshighway Blvd.
	St. Louis, Mo. 63110

	These programs may be copied and used freely for non-commercial
	purposes by developers with inclusion of this notice.


********************************************************************/
#include <stdio.h>
#include <math.h>
int outfile,ZMAX,FIRSTSLICE,LASTSLICE,THRESHOLD,ZOOM,
    RIGHTMID,LEFTMID,TOPINT,midslice,midline;
int  buffer[10][256];
float huge fzbuf[256][256];
/*            standard 18 output files ( 9 views x 2) */
char *fnamein="ctbild.000",*fgll="gll.out",*fdll="dll.out";
succ(i)
int i;
{return(i==2?0:i+1);}
prev(i)
int i;
{return(i==0?2:i-1);}
setfilename(filenum)
int filenum;
{fnamein[7]=filenum/100+'0';
 fnamein[8]=(filenum%100)/10+'0';
 fnamein[9]='0'+filenum%10;
}
interpolate(bot,top)
int bot,top;
{int next,i,j,x,inc;
 inc=top>bot?1:(-1);
 next=bot+inc;
 for(i=1,j=ZOOM-1;i<ZOOM;i++,j--){
      for(x=0;x<256;x++) buffer[next][x]=
        (buffer[bot][x]*j+buffer[top][x]*i)/ZOOM;
      next+=inc;
 }
}
float midpoint(b,a)
float b,a;
{return( (THRESHOLD-a) / (b-a) );}
getdistances()
{int z,x,y,i,j,start,stop,inc;
 FILE *fzfloat,*fn[2];
  for(i=0;i<256;i++)
   for(j=0;j<256;j++)fzbuf[i][j]=256;
  for(z=0;z<(LASTSLICE-FIRSTSLICE);z++){
      for(i=0;i<2;i++){
          setfilename(FIRSTSLICE+z+i);
          fn[i]=fopen(fnamein,"rb");
          fseek(fn[i],(long)512,SEEK_SET);
      }
      for(y=0;y<256;y++){
          fread(buffer[0],1,512,fn[0]);
          fread(buffer[ZOOM],1,512,fn[1]);
          interpolate(0,ZOOM);
          for(i=0;i<ZOOM;i++){
             for(x=0;x<256;x++)if (buffer[i+1][x]>=THRESHOLD){
                if(fzbuf[y][x]==256.0) fzbuf[y][x]=
                     (z==0) && (buffer[0][x]>=THRESHOLD)?0:z*ZOOM+i+
                      midpoint((float)buffer[i+1][x],
                                       (float)buffer[i][x]);
             }
          }
      }
      fclose(fn[0]);
      fclose(fn[1]);
      printf("did %d \n",z);
  }
  fzfloat=fopen("zdis.dat","wb");
  for(i=0;i<256;i++)fwrite(fzbuf[i],1,1024,fzfloat);
  fclose(fzfloat);
}
unsigned char gradx(y1,y2,z1,z2)
float y1,y2,z1,z2;
{float gx,gy,gz;
 unsigned char gxint;
     /* get z and y components of gradient */
  gz=(z1-z2)/2;
  gy=(y1-y2)/2;
     /*compute gx - normalized x component of gradient */
  gx=1/sqrt(1+gz*gz+gy*gy);
  gxint=255*gx+0.5;      /*scale gx by 256 */
  return(gxint);
}
doviews(namedis,nameg,named,nlines)
char *namedis,*nameg,*named;
int nlines;
{FILE *fg,*fd,*ffloat;
 int z,i,j,k,midline;
 char lined[256],lineg[256];
 midline=1;
 fd=fopen(named,"wb");
 fg=fopen(nameg,"wb");
 ffloat=fopen(namedis,"rb");
 fread(fzbuf,1,3072,ffloat);
 /* do first line */
 if(fzbuf[0][0]==256.0)lineg[0]=lined[0]=0;
 else{
     lined[0]=256-fzbuf[0][0];
     lineg[0]=gradx(fzbuf[0][0]*2,fzbuf[0][1]*2,fzbuf[0][0]*2,fzbuf[1][0]*2);
 }
 for(i=1;i<255;i++)
  if(fzbuf[0][i]==256.0) lineg[i]=lined[i]=0;
  else{
      lined[i]=256-fzbuf[0][i];
      lineg[i]=gradx(fzbuf[0][i-1],fzbuf[0][i+1],2*fzbuf[0][i],2*fzbuf[1][i]);
 }
 if(fzbuf[0][255]==256.0)lineg[255]=lined[255]=0;
 else{
     lined[255]=256-fzbuf[0][255];
     lineg[255]=
       gradx(fzbuf[0][255]*2,fzbuf[0][254]*2,fzbuf[0][255]*2,fzbuf[1][255]*2);
 }
 fwrite(lineg,1,256,fg);
 fwrite(lined,1,256,fd);
 printf("Begining computation of  views\n");
 for(z=0;z<(nlines-2);z++){      /*for each slice */
     if(fzbuf[midline][0]==256.0)lineg[0]=lined[0]=0;
     else{
         lined[0]=256-fzbuf[midline][0];
         lineg[0]=
           gradx(fzbuf[midline][0]*2,fzbuf[midline][1]*2,
                   fzbuf[prev(midline)][0],fzbuf[succ(midline)][0]);
     }
     for(i=1;i<255;i++)
       if(fzbuf[midline][i]==256.0) lineg[i]=lined[i]=0;
      else{
          lined[i]=256-fzbuf[midline][i];
          lineg[i]=gradx(fzbuf[midline][i-1],fzbuf[midline][i+1],
           fzbuf[prev(midline)][i],fzbuf[succ(midline)][i]);
     }
     if(fzbuf[midline][255]==256.0)lineg[255]=lined[255]=0;
     else{
         lined[255]=256-fzbuf[midline][255];
        lineg[255]=gradx(fzbuf[midline][255]*2,fzbuf[midline][254]*2
            ,fzbuf[prev(midline)][255],fzbuf[succ(midline)][255]);
     }
     fwrite(lineg,1,256,fg);
     fwrite(lined,1,256,fd);
     fread(fzbuf[prev(midline)],1,1024,ffloat);
     midline=succ(midline);
     printf(" did %d \n",z);
 }
 /* do last line */
 if(fzbuf[midline][0]==256.0)lineg[0]=lined[0]=0;
 else{
     lined[0]=256-fzbuf[midline][0];
     lineg[0]=gradx(fzbuf[midline][0]*2,fzbuf[midline][1]*2,
         fzbuf[midline][0]*2,fzbuf[prev(midline)][0]*2);
 }
 for(i=1;i<255;i++)
  if(fzbuf[midline][i]==256.0) lineg[i]=lined[i]=0;
  else{
      lined[i]=256-fzbuf[0][i];
      lineg[i]=gradx(fzbuf[midline][i-1],fzbuf[midline][i+1],
         2*fzbuf[midline][i],2*fzbuf[prev(midline)][i]);
 }
 if(fzbuf[midline][255]==256.0)lineg[255]=lined[255]=0;
 else{
     lined[255]=256-fzbuf[midline][255];
     lineg[255]=
       gradx(fzbuf[midline][255]*2,fzbuf[midline][254]*2,
         fzbuf[midline][255]*2,fzbuf[prev(midline)][255]*2);
 }
 fwrite(lineg,1,256,fg);
 fwrite(lined,1,256,fd);
 fclose(fg);
 fclose(fd);
 fclose(ffloat);
}
/**********************************************************/
/**** MAIN ***** MAIN ***** MAIN ***** MAIN ***** MAIN ****/
/**********************************************************/
main()
{
 /* first get some parameters from user */
 printf("Enter Zoom factor: ");
 scanf("%d",&ZOOM);
 printf("Enter Starting scan number: ");
 scanf("%d",&FIRSTSLICE);
 printf("Enter ending scan number: ");
 scanf("%d",&LASTSLICE);
 printf("Enter threshold number: ");
 scanf("%d",&THRESHOLD);
 THRESHOLD+=1024;
 getdistances();
 printf("doing bottom views");
 doviews("zdis.dat","fgbo.out","fdbo.out",256);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区swag| 理论电影国产精品| 日韩网站在线看片你懂的| 成人av网在线| 国产在线不卡视频| 亚洲成人免费看| 亚洲婷婷在线视频| 亚洲蜜臀av乱码久久精品| 91精品国产手机| 日本高清不卡视频| 日韩一区二区三区观看| 视频一区二区三区入口| 日韩专区一卡二卡| 国产一区三区三区| 国产高清成人在线| 色素色在线综合| 欧美一区二区三区四区久久| 精品日韩在线一区| 亚洲欧美一区二区视频| ...中文天堂在线一区| 亚洲综合久久久| 美女视频黄 久久| caoporm超碰国产精品| 在线观看日韩国产| 日韩视频在线观看一区二区| 2017欧美狠狠色| 亚洲欧洲日本在线| 午夜视频在线观看一区二区| 久久66热偷产精品| 色综合天天做天天爱| 91精品一区二区三区久久久久久| 久久综合色天天久久综合图片| 国产欧美日韩在线| 一区二区三区av电影| 久久99日本精品| 91精品福利视频| 欧美不卡视频一区| 亚洲欧洲制服丝袜| 韩国欧美国产一区| 在线视频一区二区三| 欧美成人官网二区| 亚洲精品国产一区二区精华液 | 国产精品家庭影院| 亚洲第一在线综合网站| 国产综合久久久久久久久久久久| 92国产精品观看| 久久久精品一品道一区| 亚洲第一激情av| 成人av网站在线观看| 日韩精品一区二| 午夜av电影一区| 99久久精品久久久久久清纯| 日韩一区二区在线看| 亚洲综合无码一区二区| 成人高清视频在线| 久久青草国产手机看片福利盒子| 亚洲成a人片综合在线| 成人国产亚洲欧美成人综合网| 日韩精品一区二区三区在线播放| 亚洲图片欧美视频| 91丨国产丨九色丨pron| 久久久国产精品麻豆| 天堂久久久久va久久久久| 91高清视频免费看| 亚洲欧美日韩国产中文在线| 91精品国产麻豆| 亚洲激情av在线| 色综合一个色综合亚洲| 国产精品久久久久久久午夜片 | 91激情五月电影| 久久综合999| 久久精品国产精品青草| 日韩免费一区二区| 日本视频在线一区| 91精品国产黑色紧身裤美女| 水蜜桃久久夜色精品一区的特点| 在线观看成人小视频| 亚洲欧美综合色| 91在线观看一区二区| 中文字幕二三区不卡| 国产精品123| 国产精品萝li| 色综合天天性综合| 亚洲免费伊人电影| 欧美系列在线观看| 日本在线不卡视频| 欧美电视剧免费观看| 激情亚洲综合在线| 中文字幕的久久| 99久久99久久综合| 亚洲电影中文字幕在线观看| 欧美日韩在线播放一区| 午夜久久久久久电影| 欧美猛男超大videosgay| 日本成人中文字幕在线视频| 欧美本精品男人aⅴ天堂| 国产麻豆精品在线观看| 亚洲欧洲av一区二区三区久久| 色网综合在线观看| 日韩电影免费在线观看网站| 精品久久久久99| 色综合久久综合网欧美综合网| 五月激情综合网| 久久网站热最新地址| 色综合久久六月婷婷中文字幕| 亚洲一级二级三级在线免费观看| 日韩精品综合一本久道在线视频| 国产精品资源在线| 亚洲一二三区不卡| 久久久精品黄色| 色成人在线视频| 久久av老司机精品网站导航| 国产精品久久福利| 欧美一区二区免费观在线| 国产精品香蕉一区二区三区| 亚洲美女视频一区| 精品久久久久av影院| 色香色香欲天天天影视综合网| 麻豆精品一区二区综合av| 国产精品嫩草久久久久| 欧美精品乱码久久久久久按摩| 国产91清纯白嫩初高中在线观看| 一区二区三区四区在线播放| 精品国产一区a| 91国在线观看| 国产一区二区不卡在线| 亚洲国产aⅴ天堂久久| 中文字幕av一区二区三区免费看| 欧美伦理视频网站| 91美女在线观看| 国产精品88av| 久久99国产精品尤物| 调教+趴+乳夹+国产+精品| 国产精品国产三级国产aⅴ入口| 欧美一区二区三区在线观看| 91麻豆精品秘密| 成人免费视频免费观看| 日韩av一区二区三区四区| 一二三四区精品视频| 中文字幕欧美日本乱码一线二线| 91精品啪在线观看国产60岁| av一区二区不卡| 国产精品影视天天线| 久久99蜜桃精品| 麻豆视频观看网址久久| 日韩电影免费一区| 日韩电影免费一区| 丝袜诱惑制服诱惑色一区在线观看| 亚洲综合偷拍欧美一区色| 中文字幕在线不卡视频| 欧美韩国日本一区| 欧美国产日韩亚洲一区| 久久精品一区二区三区四区 | 99视频国产精品| 国产成人精品一区二区三区四区 | 麻豆久久久久久| 日本不卡123| 麻豆国产一区二区| 免费成人深夜小野草| 美女一区二区久久| 国内外成人在线| 国产成人超碰人人澡人人澡| 国产成人免费视| caoporn国产精品| 色999日韩国产欧美一区二区| 91在线视频播放地址| 欧美图片一区二区三区| 欧美日韩日日摸| 日韩情涩欧美日韩视频| 2021中文字幕一区亚洲| 中文字幕不卡在线| 一区二区三区在线观看动漫| 爽好多水快深点欧美视频| 狠狠色2019综合网| 91亚洲国产成人精品一区二三| 在线精品视频免费播放| 91.xcao| 2023国产精华国产精品| 国产精品免费视频网站| 亚洲成人av电影| 国产成人精品一区二 | 免费成人美女在线观看.| 理论电影国产精品| hitomi一区二区三区精品| 欧美色老头old∨ideo| 欧美精品一区二区久久婷婷| 国产精品国产三级国产普通话99| 一区二区三区在线视频免费观看| 丝袜美腿成人在线| av一二三不卡影片| 欧美男生操女生| 中文字幕中文乱码欧美一区二区| 亚洲午夜精品17c| 国产精品18久久久久久久网站| 色综合欧美在线| 久久久久久夜精品精品免费| 亚洲综合色噜噜狠狠| 国产成人鲁色资源国产91色综| 欧美日韩精品欧美日韩精品一| 久久综合久久久久88|