IDL---ENVI
ENVI;启动envi
file=envi_pickfile();选择文件dialog,返回值就为file
ENVI_OPEN_FIle,file,r_fid=fid;根据文件名打开file,并且返回fid
envi_file_query,fid,NB=NB,NL=NL,NS=NS,dims=dims,data_type=dt,bnames=bnames;根据fid查询图像信息
data=envi_get_data(fid=fid,dims=dims,pos=0)根据fid得到数据dims:维度
window,1,xsize=798,ysize=909l;新建一个window窗体
tv,data;显示数据
tvscl,data;拉伸显示
tvscl,data,/order;idl中左下角为原点,envi中是左上角
envi,/restore_base_save_files ;不启动ENVI调用功能
envi_batch_init:批处理初始化
.e canny.pro;跳转到canny.pro文件 完整工程文件----定义一个button,并添加事件
PRO envi_canny_define_buttons,buttonInfo
;定义button
ENVI_DEFINE_MENU_BUTTON,buttonInfo,$
value='Canny',$;显示的值
uValue='',$;用户值
EVENT_PRO='envi_canny',$;必须与主函数名一致
pef_value='Filter',$;区分大小写
position=1;位置
END pro envi_canny,event ;定义主函数
;
compile_opt idl2 ;编译环境
;选择数据
envi_select,fid=fid,/BAND_ONLY,pos=pos ;选择遥感数据文件
;检查数据
print,fid,pos ;打印
if fid eq -1 then return ;判断是否得到数据
;查询数据
envi_file_query,fid,dims=dims,ns=ns,$
nl=nl, nb=1, wl=wl
;获取数据
data=ENVI_GET_DATA(fid=fid,dims=dims,pos=pos)
;canny
result=canny(data)
;显示数据
;TVSCL,result ;新建窗体并显示数据
output=envi_pickfile(/output) ;设置并得到输出路径
if(output eq "")then begin ;判断得到的输出路径是否为空
ENVI_ENTER_DATA,result
endif else begin
;保存数据
openw,lun,output,/GET_LUN ;新建二进制文件
writeu,lun,result ;将结果写入
FREE_LUN,lun ;释放
;写头文件
ENVI_SETUP_HEAD, fname=output, $
interleave=0,data_type=1, $
NS=NS,NB=1,NL=NL,$
/write, /open, r_fid = r_fid
end envi_display_bands, r_fid, 0;显示该文件(只有一个波段) END ;写完主程序之后要进行保存,$
;在控制台中
;save,filename="E:\Program Files\Exelis\ENVI51\classic\save_add\envi_canny.sav", /routines解决方案:
在IDL的帮助中搜素resolve_all,通过语法
RESOLVE_ALL [, CLASS=string] [, /CONTINUE_ON_ERROR] [, /QUIET] [, RESOLVE_EITHER=string] [, RESOLVE_FUNCTION=string] [, RESOLVE_PROCEDURE=string] [, SKIP_ROUTINES=string] [, UNRESOLVED=variable]
在控制台中输入resolve_all,/CONTINUE_ON_ERROR,SKIP_ROUTINES="envi"回车,在save
save,filename="E:\Program Files\Exelis\ENVI51\classic\save_add\envi_canny.sav", /routines
IDL---ENVI的更多相关文章
- 【300】◀▶ IDL - ENVI API
参考:ENVI API 参考:ENVI Classic Display 序号 类名称 功能说明 语法 & 举例 01 ENVI 函数 ====<<<< De ...
- “找回” Envi 快捷方式
Envi+IDL文件夹挪到别的电脑,不用安装,直接可以使用.但是桌面和开始菜单没有了Envi,IDL,envi+idl的快捷方式,很不方便. 记录一下快捷方式命令行,备用: envi快捷方式 ...
- ENVI/IDL与ArcGIS集成开发的三种途径
转载:本文来自ENVI5.0-IDL8.2系列产品白皮书_201303.PDF(Esri中国官网可下载)中P7-P10 ENVI 是一个非常开放的平台,提供一个健全的函数库,几乎涵盖ENVI 平台大部 ...
- ENVI/IDL中.sav和.pro文件用法的不同
软件envi5.0 sp3 .sav是IDL binaryfile。 安装方法:把ENVIProgramGenerator.sav文件拷贝到…\Exelis\ENVI50\extensions\文件夹 ...
- 2014年ENVI/IDL遥感应用与开发培训班-11月重庆站 開始报名了
主办单位: 中国遥感应用协会 Esri中国信息技术有限公司 内容简单介绍: 依据中国遥感应用协会栾恩杰理事长推动国内遥感技术和应用的指示精神,2014年中国遥感应用协会组织培训交流部与Esri中国信息 ...
- 将封装了envi功能的IDL类导出成java类,方便java调用
目的: 用IDL将ENVI的功能封装成为IDL的类,并使用IDL的对象导出功能把这些功能类导出为java类,方便java调用.(本来想直接通过GP工具调用的,但是没有授权文件) 操作步骤: ...
- IDL打包发布exe(包含ENVI环境)
IDL利用make_rt函数打包发布exe时,输出路径不能包含中文!!!
- IDL界面程序直接调用envi菜单对应功能
参考自http://blog.sina.com.cn/s/blog_764b1e9d010115qu.html 参考文章的方法是构建一个button控件,通过单击实现,这种方法比较复杂,不是我们经常能 ...
- ENVI二次开发模式下的Landsat数据读取
从usgs网站或者马里兰大学下载TM或Landsat原始数据,数据可能包括9个tif数据,两个txt文件和一个gtf文件.示例结构如下: ENVI下可以直接打开*_MTL.txt文件打开,打开后波段列 ...
- IDL与C#混合编程技术
C# (C Sharp)是微软公司在2000年6月发布的一种新的编程语言.C#与Java有很多的相似之处,包括了诸如单一继承.界面.与Java几乎同样的语法,和编译成中间代码再运行的过程.它又借鉴了D ...
随机推荐
- UISwitch swift
// // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fa ...
- 在VS2010中ActiveX控件注册方法,使用regsvr32命令
上一篇小编展示了如何设置VS2010自带的ActiveX控件的容器测试程序,现在为大家演示一下如何注册ActiveX控件. 首先简单了解一下ActiveX控件的知识,ActiveX控件:简单来说,就是 ...
- Kibana4学习<三>
discover 功能 Discover 标签页用于交互式探索你的数据.你可以访问到匹配得上你选择的索引模式的每个索引的每条记录.你可以提交搜索请求,过滤搜索结果,然后查看文档数据.你还可以看到匹配搜 ...
- PHP数组的定义和遍历
//常用函数//生成随机数//echo rand(3,33); //两个参数来确定随机数的范围为3-33 //日期时间函数echo time(); //取当前时间的UNIX时间戳//date_defa ...
- UVALive - 7374 Racing Gems 二维非递减子序列
题目链接: http://acm.hust.edu.cn/vjudge/problem/356795 Racing Gems Time Limit: 3000MS 问题描述 You are playi ...
- hdu 5120 Intersection
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5120 A ring is a 2-D figure bounded by two circles sh ...
- 【BZOJ】【3550】【ONTAK2010】Vacation
网络流/费用流 Orz太神犇了这题…… 我一开始想成跟Intervals那题一样了……每个数a[i]相当于覆盖了(a[i]-n,a[i]+n)这个区间……但是这样是错的!!随便就找出反例了……我居然还 ...
- Linux VPS 免费管理面板推荐
现在各种国内外VPS,云主机横行,越来越多的站长接受在VPS上建站,很多VPS主机售价便宜,性能优秀,但都是基于linux系统的,如openvz的主机,linux服务器系统主要是通过shell命令行来 ...
- D3D depth buffer的预览
在使用D3D开发游戏的过程中,很多情况下都会用到depth buffer来完成特定的效果,比如DOF,Shadows,SSAO等等.在这些情况下我们就可能需要预览depth buffer来确定它是正确 ...
- tcpkill清除异常tcp连接
tcpkill清除异常tcp连接 在linux系统中,遇到TCP链接迟迟不能释放的情况,类似FIN_WAIT1.FIN_WAIT2的状态,释放时间不确定,而且对应的程序已经关闭,相应的端口也不再监听, ...
解决方案: