c#怎样调用enviidl 开发的pro

c#怎样调用enviidl 开发的pro,第1张

1在主界面添加调用外部exe程序的Button,双击此Button进入代码编辑页面。

在程序的开始using SystemDiagnostics;

然后在初始化函数的上方定义private static SystemDiagnosticsProcess p;

2在Button的双击事件中,添加如下代码:

if (p == null){

p = new SystemDiagnosticsProcess();

pStartInfoFileName = 应用程序名字exe;

pStart();}else{

if (pHasExited) //是否正在运行{

pStart();}}

pStartInfoWindowStyle = SystemDiagnosticsProcessWindowStyleNormal;}

3若想关闭主程序的同时也关闭调用的程序,需要在退出程序的按钮事件中添加如下代码:

Process[] pProcess;

pProcess = ProcessGetProcesses();

if (pProcess[i]ProcessName == 应用程序名字) //任务管理器应用程序的名{

ENVI——完整的遥感图像处理平台ENVI(The Environment for Visualizing Images)是美国Exelis Visual Information Solutions公司的旗舰产品。

它是由遥感领域的科学家采用交互式数据语言IDL(Interactive Data Language)开发的一套功能强大的遥感图像处理软件。

它是快速、便捷、准确地从影像中提取信息的首屈一指的软件解决方案。

今天,众多的影像分析师和科学家选择ENVI来从遥感影像中提取信息。ENVI已经广泛应用于科研、环境保护、气象、石油矿产勘探、农业、林业、医学、国防&安全、地球科学、公用设施管理、遥感工程、水利、海洋、测绘勘察和城市与区域规划等领域。

所以说ENVI和IDL有着密不可分的关系,ENVI只是用IDL开发出来的一套遥感图像处理平台,它不完全覆盖遥感处理的方方面面,当然已经很全了。如果你还需要根据自己的需要开发相应的功能或者图像处理过程的话,那么IDL就是必不可少的,很多开发都是基于ENVI现有的功能来拓展的,所以安装ENVI的时候会同时装上IDL以便于后期使用方便,当然,如果你是初级用户,你完全可以只打开envi而不用理睬IDL就好。但是对于多数中高级用户来说,IDL则是必不可少的。

IDL是一种数据分析和图像化应用程序及编程语言。

IDL先由美国ITT公司所有,后由美国ExelisVis公司所有。最初在七十年代后期用于帮助科学家分析火星探险卫星发回的数据,将浩瀚的数据转换为图形。

从此后,IDL得到广泛运用,使用者日众,呈几何级别增长。IDL使用者可以迅速且方便地运用此软件将数据转换为图像,促进分析和理解。通过软件转化的图像既可以是简单色彩,也可以是全色三维图像和模型。

IDL的开发环境:

IDLDE是用户快速编写、测试并调试代码的最佳环境,用户可以在该环境中方便地进行应用开发。IDLDE具有完善的代码编译、调试环境。IDLGUIBuilder 可以迅速开发跨平台的用户图形界面(GUI),而无需熟悉IDL控件编程知识。

用户可以拖放式建立图形用户界面GUI,非常灵活、快速地产生应用程序的界面。IDL GUIBuilder已被集成到Idl开发环境中(IDLDE)。用户还可方便地输出project,生成可执行文件。

直接 data=read_image(ImageFile),如果是彩色图像,想单独获取r,g,b,就 data=read_image(ImageFile,r,g,b),数组不用定义,直接返回的,想查看数组大小什么的可以用size函数

1我要讨论的是matlab、IDL、fortran、C这4件事。因为他们能够共同地干一件事:计算。

2实际上把他们四个放在一起说很诡异的,因为这完全不是一码事,就有点像拿word和pdf作比较一样不明真相。但是大家都这么说,那我也勉强比比看。

3前两者可以归为一个子类,matlab和idl都是一种交互式、可视化语言系统;后两者算一类,是一种算法语言,有人说算高级语言,fortran我同意,C在广义上说可以直接对内存和堆栈进行 *** 作,可能不如fortran级别高,但是针对科学计算的话,也可以勉强算高级语言。(补充提示:编程语言中说的高级语言、中级语言、低级语言、机器语言的四个级别是针对人的理解里,越接近人的语言习惯的就是高级语言,越难以阅读但是机器方便也读的就是低级语言。不是说高级语言比低级语言更好。)

4先说画图:

matlab和IDL本身可以画图,这一点是fortran和C不具备的。虽然fortran和C也有图形库可以调用,但基本上很难用,这么说吧,就好比猫狗也有哺乳的功能,但是指望喝它们那点奶实在是。。。

所以fortran和C仅仅可以编程序做运算,生成文件之后,再交给第三方软件去画图。执行画图任务的可以是origin、gnuplot、pgplot,甚至是matlab和IDL。

就matlab和IDL本身来说,图像也有些区别。它们都有自己的一套图形编码系统,都可以生成eps文件方便插入到latex论文中去,但是它们的eps文件编码方式很不一样。以我的经验,同等分辨率的情况下,IDL的图要小一些、轻巧很多。matlab的图有点笨重。(不过说到轻巧,gnuplot笑了。gnuplot画的eps图竟然可以用记事本直接打开,在里面修改文字,保存,关闭,再看,图上的标度就变了。)matlab的图有一个很严重的缺点,就是边距设置有毛病,或者说与pdf本身的标准不一致。这就导致在linux下生成的latex文档图像有位移。不过也很容易纠正,增加位置参数就行了。其实这倒是一个培养使用完善参数习惯的好办法。IDL没有这个问题,出来的图很好,直接用就行,参数先天地与latex和pdf标准是一致的。

在色彩方面,这里不多说了,详见我过去的博文 >

以上就是关于c#怎样调用envi/idl 开发的pro全部的内容,包括:c#怎样调用envi/idl 开发的pro、idl是什么意思、用IDL编一段程序读写图像,图像格式为.jpg,要用到read_jpeg,定义数组什么的……等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10142127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存