IDL 建立影像金字塔

形成按目录放好的,类似于Google Map Tile的金字塔瓦片Jpg。

   1:  ;
   2:  pro tsplit
   3:      ; 读入Jpeg格式文件
   4:      szFile = 'e:\test.jpg'; dialog_pickfile(title = 'input data')
   5:      read_jpeg,szFile,image,true = 3
   6:      ; 切割5级
   7:      nlevel = 5;
   8:      ;
   9:      for iLevel = 0,nLevel-1 do begin
  10:          split,image,ilevel,ib
  11:      endfor
  12:      return
  13:  end
  14:   
  15:  pro split,image,level,iband
  16:      src = 'e:\src'
  17:      ns0 = 512
  18:      nl0 = 512
  19:      n0 = 2^level
  20:      sz = size(image,/dimensions)
  21:      help,sz
  22:      print,sz
  23:      nx = sz[0]
  24:      ny = sz[1]
  25:      xspan = nx*1.0/n0;
  26:      yspan = ny*1.0/n0;
  27:      imglet = bytarr(ns0,nl0,3)
  28:   
  29:      fmt = '(%"%s\\%d\\img_%d_%d.jpg")';
  30:      for is = 0l,n0-1 do begin
  31:          for il = 0l,n0 -1 do begin
  32:              x = indgen(ns0)#replicate(1,nl0)*xspan/ns0 + is*xspan
  33:              y = replicate(1,ns0)#indgen(nl0)*yspan/nl0 + il*yspan
  34:              for ib = 0,2 do begin
  35:                  imglet[*,*,ib] = bilinear(image[*,*,ib],x,y)
  36:              endfor
  37:              fileout = string(src,level,n0-il-1,is,format =fmt)
  38:              dir = file_dirname(fileout)
  39:              if(file_test(dir,/directory) lt 1) then file_mkdir,dir
  40:              write_jpeg,fileout,imglet,true = 3
  41:          endfor
  42:      endfor
  43:  end
  44:   
  45:  ; 主程序
  46:  pro ttt
  47:   
  48:      tsplit
  49:      print,'Done
  50:  end
posted @ 2014-01-20 18:45  ZinkSor  阅读(533)  评论(0编辑  收藏  举报