打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
idl实现影像的规则裁剪(调用envi函数)

function resize_shp,shpfile,infile,outfile
compile_opt idl2

envi,/restore_base_save_files
envi_batch_init,log_file = 'log.txt'

envi_open_file,infile,r_fid = fid
if fid eq -1 then begin
    envi_batch_exit
    return,0
endif

envi_file_query,fid,nb = nb,bnames = bnames
pos = lindgen(nb)
   
oshp = obj_new('IDLffShape',shpfile)
    oshp ->getproperty,N_ENTITIES=num_ent
;    ,$
;          ATTRIBUTE_INFO = attr_info,N_ATTRIBUTES = n_attr,$
;          ENTITY_TYPE = ent_type
    ;读坐标,并存在相应的数组中
    minx = dblarr(num_ent)
    maxx = dblarr(num_ent)
    miny = dblarr(num_ent)
    maxy = dblarr(num_ent)
   
    for i = 0,num_ent - 1 do begin
      ent = oshp->getentity(i)
      minx[i] = ent.bounds[0]
      miny[i] = ent.bounds[1]
      maxx[i] = ent.bounds[4]
      maxy[i] = ent.bounds[5]
     
    endfor
   
     OBJ_DESTROY,oshp ;销毁一个shape对象
    
    ;求整个shp的边界
    minvalue_x = min(minx);最大x值
    maxvalue_x = max(maxx);最大x值
    minvalue_y = min(miny);最小y值
    maxvalue_y = max(maxy);最小y值
   
   ;用这个范围对图像进行裁剪
    xmap = [minvalue_x,maxvalue_x]
    ymap = [minvalue_y,maxvalue_y]
   
    envi_convert_file_coordinates,fid,xf,yf,xmap,ymap
   
    dims = [-1,long(xf[0]),long(xf[1]),long(yf[1]),long(yf[0])]
;    out_name = 'E:\text\evf_roi\a.raw'
    envi_doit,'RESIZE_DOIT',fid = fid,dims = dims,$
        out_name = outfile,$
        pos = pos,out_bname = bnames,$
        r_fid = resized_fid,rfact = [1.0,1.0]

end

要是可以实现不规则裁剪就好了,再琢磨琢磨!!!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
利用ENVI IDL去除小斑块功能扩展(附源码)
日志 [2010年08月12日]利用IDL+ENVI实现影像清晰度计算
MODIS产品下载与数据处理小结 - 易歌的日志 - 网易博客
IDL调用ENVI中的一些函数(待完善)
俞敏洪英语单词词根记忆法之五
IDL开发专题-IDL下的坐标系及示例 - ENVI/IDL技术版 - Esri中国社区 ...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服