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

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

?? gor.c

?? 3DMEDLIB - 三維醫學圖像開發源程序庫及范例
?? C
字號:
/*********************** gor.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[2][6][256];
float fxbuf[5][256],fybuf[5][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(line,bot,top)
int line,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[line][next][x]=
        (buffer[line][bot][x]*j+buffer[line][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,line;
 FILE *fxfloat,*fyfloat,*fzfloat,*fn[2];
  fxfloat=fopen("xdis.dat","wb");
  fyfloat=fopen("ydis.dat","wb");
  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(LASTSLICE-(z+i));
          fn[i]=fopen(fnamein,"rb");
          fseek(fn[i],(long)512,SEEK_SET);
      }
      line=0;
      for(j=0;j<ZOOM;j++)
       for(i=0;i<256;i++)fxbuf[i][j]=fybuf[j][i]=256;
      for(y=255;y>=0;y--){
          fseek(fn[0],(long)512*(y+1),SEEK_SET);
          fread(buffer[line][0],1,512,fn[0]);
          fseek(fn[1],(long)512*(y+1),SEEK_SET);
          fread(buffer[line][ZOOM],1,512,fn[1]);
          interpolate(line,0,ZOOM);
          for(i=0;i<ZOOM;i++){
             for(x=255;x>=0;x--)if (buffer[line][i+1][x]>=THRESHOLD){
                if(fxbuf[i][y]==256.0) fxbuf[i][y]=(x==255)?0:255-(x+1)+
                      midpoint((float)buffer[line][i+1][x],
                              (float)buffer[line][i+1][x+1]);
                if(fybuf[i][x]==256.0) fybuf[i][x]=(y==255)?0:255-(y+1)+
                      midpoint((float)buffer[line][i+1][x],
                                       (float)buffer[1-line][i+1][x]);
                if(fzbuf[y][x]==256.0) fzbuf[y][x]=
                     (z==0) && (buffer[line][0][x]>=THRESHOLD)?0:z*ZOOM+i+
                      midpoint((float)buffer[line][i+1][x],
                                       (float)buffer[line][i][x]);
             }
          }
          line=1-line;
      }
      fclose(fn[0]);
      fclose(fn[1]);
      fwrite(fxbuf,1,ZOOM*1024,fxfloat);
      fwrite(fybuf,1,ZOOM*1024,fyfloat);
      printf("did %d \n",z);
  }
  fclose(fxfloat);
  fclose(fyfloat);
  fzfloat=fopen("zdis.dat","wb");
  for(i=0;i<256;i++){fwrite(fzbuf[i],1,1024,fzfloat);printf("wr %d",i);}
  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(fxbuf,1,3072,ffloat);
 /* do first line */
 if(fxbuf[0][0]==256.0)lineg[0]=lined[0]=0;
 else{
     lined[0]=256-fxbuf[0][0];
     lineg[0]=gradx(fxbuf[0][0]*2,fxbuf[0][1]*2,fxbuf[0][0]*2,fxbuf[1][0]*2);
 }
 for(i=1;i<255;i++)
  if(fxbuf[0][i]==256.0) lineg[i]=lined[i]=0;
  else{
      lined[i]=256-fxbuf[0][i];
      lineg[i]=gradx(fxbuf[0][i-1],fxbuf[0][i+1],2*fxbuf[0][i],2*fxbuf[1][i]);
 }
 if(fxbuf[0][255]==256.0)lineg[255]=lined[255]=0;
 else{
     lined[255]=256-fxbuf[0][255];
     lineg[255]=
       gradx(fxbuf[0][255]*2,fxbuf[0][254]*2,fxbuf[0][255]*2,fxbuf[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(fxbuf[midline][0]==256.0)lineg[0]=lined[0]=0;
     else{
         lined[0]=256-fxbuf[midline][0];
         lineg[0]=
           gradx(fxbuf[midline][0]*2,fxbuf[midline][1]*2,
                   fxbuf[prev(midline)][0],fxbuf[succ(midline)][0]);
     }
     for(i=1;i<255;i++)
       if(fxbuf[midline][i]==256.0) lineg[i]=lined[i]=0;
      else{
          lined[i]=256-fxbuf[midline][i];
          lineg[i]=gradx(fxbuf[midline][i-1],fxbuf[midline][i+1],
           fxbuf[prev(midline)][i],fxbuf[succ(midline)][i]);
     }
     if(fxbuf[midline][255]==256.0)lineg[255]=lined[255]=0;
     else{
         lined[255]=256-fxbuf[midline][255];
        lineg[255]=gradx(fxbuf[midline][255]*2,fxbuf[midline][254]*2
            ,fxbuf[prev(midline)][255],fxbuf[succ(midline)][255]);
     }
     fwrite(lineg,1,256,fg);
     fwrite(lined,1,256,fd);
     fread(fxbuf[prev(midline)],1,1024,ffloat);
     midline=succ(midline);
     printf(" did %d \n",z);
 }
 /* do last line */
 if(fxbuf[midline][0]==256.0)lineg[0]=lined[0]=0;
 else{
     lined[0]=256-fxbuf[midline][0];
     lineg[0]=gradx(fxbuf[midline][0]*2,fxbuf[midline][1]*2,
         fxbuf[midline][0]*2,fxbuf[prev(midline)][0]*2);
 }
 for(i=1;i<255;i++)
  if(fxbuf[midline][i]==256.0) lineg[i]=lined[i]=0;
  else{
      lined[i]=256-fxbuf[0][i];
      lineg[i]=gradx(fxbuf[midline][i-1],fxbuf[midline][i+1],
         2*fxbuf[midline][i],2*fxbuf[prev(midline)][i]);
 }
 if(fxbuf[midline][255]==256.0)lineg[255]=lined[255]=0;
 else{
     lined[255]=256-fxbuf[midline][255];
     lineg[255]=
       gradx(fxbuf[midline][255]*2,fxbuf[midline][254]*2,
         fxbuf[midline][255]*2,fxbuf[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);
 printf("doing left views");
 doviews("xdis.dat","fgll.out","fdll.out",(LASTSLICE-FIRSTSLICE)*ZOOM);
 printf("doing bottom views");
 doviews("ydis.dat","fgre.out","fdre.out",(LASTSLICE-FIRSTSLICE)*ZOOM);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品91一区二区| 国产日韩av一区| 色94色欧美sute亚洲线路一久 | 一区二区三区在线免费播放| 国产欧美一区二区精品性色| 久久夜色精品国产欧美乱极品| 91精品国产欧美一区二区18 | 国产精品一区二区视频| 国内成人自拍视频| 高潮精品一区videoshd| 夫妻av一区二区| av亚洲精华国产精华| 色偷偷久久人人79超碰人人澡| 色妹子一区二区| 91精品国产综合久久久蜜臀图片| 欧美一区二区久久| 久久精品人人爽人人爽| 综合av第一页| 日本不卡一二三区黄网| 国产一区二区三区四区在线观看| 成人免费电影视频| 欧美午夜片在线看| 日韩欧美中文字幕制服| 中文字幕国产精品一区二区| 亚洲欧洲综合另类| 日韩国产在线一| 国产成人亚洲综合色影视| 91蝌蚪porny| 日韩精品一区二区在线| 中文字幕欧美一| 美国精品在线观看| av电影在线观看不卡| 欧美一区二区三区爱爱| 国产精品乱码妇女bbbb| 免费成人美女在线观看| www.久久久久久久久| 欧美一区二视频| 日韩理论片网站| 精品亚洲porn| 欧美日韩一区二区欧美激情| 国产婷婷色一区二区三区| 一区二区三区日本| 成人一级视频在线观看| 91精品国模一区二区三区| 亚洲日本韩国一区| 精品一区二区日韩| 欧美狂野另类xxxxoooo| 亚洲欧美综合网| 国产精品69久久久久水密桃| 88在线观看91蜜桃国自产| 中文字幕人成不卡一区| 国产乱码字幕精品高清av| 精品视频在线看| 亚洲欧美日韩国产另类专区| 激情深爱一区二区| 91精品国产综合久久福利软件| 亚洲色图清纯唯美| 成人综合婷婷国产精品久久免费| 日韩视频国产视频| 日韩国产一二三区| 欧美日韩1区2区| 亚洲国产精品精华液网站| av午夜精品一区二区三区| 国产视频亚洲色图| 久久99国产精品久久99| 日韩欧美综合一区| 久久激情综合网| 欧美一级淫片007| 日韩国产一二三区| 91精品国产aⅴ一区二区| 三级久久三级久久久| 欧美日韩和欧美的一区二区| 亚洲图片自拍偷拍| 欧美日韩精品是欧美日韩精品| 一区二区成人在线视频| 欧美视频在线不卡| 亚洲va在线va天堂| 在线电影欧美成精品| 日韩成人av影视| 日韩亚洲欧美一区| 九色综合国产一区二区三区| 久久久www成人免费毛片麻豆| 亚洲高清中文字幕| 欧美一区二区国产| 国产一区二区三区| 国产精品久久久久久久久快鸭| www.综合网.com| 亚洲黄色在线视频| 8x8x8国产精品| 国产一区二区三区精品欧美日韩一区二区三区 | 丁香一区二区三区| 亚洲免费观看视频| 色综合天天做天天爱| 亚洲二区视频在线| 91麻豆swag| 亚洲va中文字幕| 国产视频一区二区在线观看| 高清在线成人网| 亚洲一区二区五区| 91精品久久久久久久久99蜜臂| 国产麻豆精品95视频| 亚洲免费电影在线| 欧美一级二级三级乱码| 成人动漫中文字幕| 亚洲aaa精品| 日韩一区和二区| 成人av资源站| 免费看日韩精品| 中文字幕av一区二区三区免费看| 欧美性猛片aaaaaaa做受| 美国十次了思思久久精品导航| 国产精品视频观看| 欧美精品电影在线播放| 国产成人免费av在线| 视频一区视频二区中文| 欧美电视剧在线观看完整版| 丁香一区二区三区| 秋霞成人午夜伦在线观看| 国产精品区一区二区三| 日韩无一区二区| 欧美系列日韩一区| 成人av电影免费观看| 免费高清不卡av| 亚洲国产日韩综合久久精品| 欧美国产禁国产网站cc| 日韩欧美高清dvd碟片| 日本精品一区二区三区高清| 国产精品一区二区在线观看不卡 | 日韩一二在线观看| 欧洲一区二区av| 不卡一区中文字幕| 美洲天堂一区二卡三卡四卡视频| 一区二区三区在线看| 欧美精品久久99久久在免费线| 国产一区二区在线影院| 日本欧美大码aⅴ在线播放| 亚洲天堂a在线| 久久综合九色欧美综合狠狠| 欧美三级三级三级爽爽爽| 国产精品911| 亚洲一区二区三区美女| 亚洲视频狠狠干| 中文字幕日韩一区二区| 国产精品美女久久久久久久久久久| 精品国产电影一区二区| 日韩精品在线看片z| 欧美一区二区网站| 欧美电影一区二区三区| 欧美色图第一页| 色又黄又爽网站www久久| 成人毛片老司机大片| 成人av在线观| 色婷婷综合久久久中文一区二区 | 最近日韩中文字幕| 亚洲欧美在线视频| 亚洲欧美激情插| 国产精品动漫网站| 亚洲欧美日韩电影| 亚洲成av人影院在线观看网| 中文字幕亚洲不卡| 亚洲精品免费在线观看| 一区二区在线看| 香蕉乱码成人久久天堂爱免费| 亚洲成人自拍一区| 日韩电影一区二区三区四区| 亚洲国产成人高清精品| 亚洲成a人在线观看| 免费在线观看精品| 国产激情精品久久久第一区二区| 国产一区二区网址| 91国产丝袜在线播放| 欧美日韩不卡在线| 国产日韩欧美在线一区| 亚洲精品国产精华液| 日韩电影一区二区三区四区| 国产成人精品免费看| 91猫先生在线| 日韩欧美成人激情| 国产精品免费久久久久| 亚洲成人一二三| 国产精品中文字幕欧美| 色噜噜狠狠一区二区三区果冻| 91精品国模一区二区三区| 国产精品色婷婷久久58| 亚洲午夜电影网| 国产福利视频一区二区三区| 欧美在线视频全部完| 精品成a人在线观看| 亚洲欧美国产毛片在线| 精品亚洲成a人在线观看| 色中色一区二区| 日韩欧美久久久| 一区二区免费看| 国产福利不卡视频| 91精品国产全国免费观看| 自拍偷拍欧美激情| 国产毛片精品国产一区二区三区| 欧美视频在线一区二区三区| 国产精品卡一卡二卡三| 麻豆国产精品官网|