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的更多相关文章

  1. 【300】◀▶ IDL - ENVI API

    参考:ENVI API 参考:ENVI Classic Display 序号 类名称   功能说明   语法 & 举例 01 ENVI 函数   ====<<<< De ...

  2. “找回” Envi 快捷方式

      Envi+IDL文件夹挪到别的电脑,不用安装,直接可以使用.但是桌面和开始菜单没有了Envi,IDL,envi+idl的快捷方式,很不方便.   记录一下快捷方式命令行,备用: envi快捷方式 ...

  3. ENVI/IDL与ArcGIS集成开发的三种途径

    转载:本文来自ENVI5.0-IDL8.2系列产品白皮书_201303.PDF(Esri中国官网可下载)中P7-P10 ENVI 是一个非常开放的平台,提供一个健全的函数库,几乎涵盖ENVI 平台大部 ...

  4. ENVI/IDL中.sav和.pro文件用法的不同

    软件envi5.0 sp3 .sav是IDL binaryfile。 安装方法:把ENVIProgramGenerator.sav文件拷贝到…\Exelis\ENVI50\extensions\文件夹 ...

  5. 2014年ENVI/IDL遥感应用与开发培训班-11月重庆站 開始报名了

    主办单位: 中国遥感应用协会 Esri中国信息技术有限公司 内容简单介绍: 依据中国遥感应用协会栾恩杰理事长推动国内遥感技术和应用的指示精神,2014年中国遥感应用协会组织培训交流部与Esri中国信息 ...

  6. 将封装了envi功能的IDL类导出成java类,方便java调用

    目的:     用IDL将ENVI的功能封装成为IDL的类,并使用IDL的对象导出功能把这些功能类导出为java类,方便java调用.(本来想直接通过GP工具调用的,但是没有授权文件)   操作步骤: ...

  7. IDL打包发布exe(包含ENVI环境)

    IDL利用make_rt函数打包发布exe时,输出路径不能包含中文!!!

  8. IDL界面程序直接调用envi菜单对应功能

    参考自http://blog.sina.com.cn/s/blog_764b1e9d010115qu.html 参考文章的方法是构建一个button控件,通过单击实现,这种方法比较复杂,不是我们经常能 ...

  9. ENVI二次开发模式下的Landsat数据读取

    从usgs网站或者马里兰大学下载TM或Landsat原始数据,数据可能包括9个tif数据,两个txt文件和一个gtf文件.示例结构如下: ENVI下可以直接打开*_MTL.txt文件打开,打开后波段列 ...

  10. IDL与C#混合编程技术

    C# (C Sharp)是微软公司在2000年6月发布的一种新的编程语言.C#与Java有很多的相似之处,包括了诸如单一继承.界面.与Java几乎同样的语法,和编译成中间代码再运行的过程.它又借鉴了D ...

随机推荐

  1. tomcat设置内存大小

    -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

  2. 20145103 《Java程序设计》第3周学习总结

    20145103 <Java程序设计>第3周学习总结 教材学习内容总结 第四章我首先了解了CPU与内存的关系,栈与堆的关系.要产生对象必须先定义类,类是对象的设计图,对象是累的实例.以类名 ...

  3. linux内核分析之fork()

    从一个比较有意思的题开始说起,最近要找工作无意间看到一个关于unix/linux中fork()的面试题: #include<sys/types.h> #include<stdio.h ...

  4. 这个好像、也许、或许、大概、应该、Maybe真的可以算是传说中的Spring.Net了吧

                                                            这个好像.也许.或许.大概.应该.Maybe真的可以算是传说中的Spring.Net了吧 ...

  5. Java应用程序实现屏幕的"拍照"

    有时候,在Java应用程序开发中,如:远程监控或远程教学,常常需要对计算机的屏幕进行截取,由于屏幕截取是比较接近操作系统的操作,在Windows操作系统下,该操作几乎成了VC.VB等的专利,事实上,使 ...

  6. Java多线程——<八>多线程其他概念

    一.概述 到第八节,就把多线程基本的概念都说完了.把前面的所有文章加连接在此: Java多线程——<一>概述.定义任务 Java多线程——<二>将任务交给线程,线程声明及启动 ...

  7. TGL站长关于常见问题的回复

    问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不 ...

  8. Oracle NULL 和空值

      如果你工作中用到了Oracle,你必须要留意NULL和空值的处理与SQL Server上的不同.现在让我们看些例子. 建立这张数据库表并插入记录 CREATE TABLE TestNull(Col ...

  9. sprytabbedpanels.js库之在页面中插入Tabbed Panels

    向页面加入sprytabbedpanels.js文件.<script src="SpryAssets/SpryTabbedPanels.js" type="text ...

  10. substring()、 substr() 、slice()的区别:

    stringObject.substring(start,stop) 用于提取字符串中介于两个指定下标之间的字符.start必需.一个非负的整数,规定要提取的子串的第一个字符在 stringObjec ...