IDL 对象图形法-图像对象 IDLgrImage用例解析
IDL教程_07_IDL三维视图
Volume Visualization
ISOSURFACE –拓扑连续三角分解产生 IVOLUME - ivolume
Volume Visualization
PROJECT_VOL – volume投影到平面上
Volume Visualization
Surfaces and Contours
POLAR_CONTOUR – 极坐标轮廓线
Surfaces and Contours
SHADE_SURF – 生成网格数据的阴影曲面
Surfaces and Contours
SHADE_SURF_IRR – 非规则网格数据的阴 影曲面
Surfaces and Contours
EXTRACT_SLICE – 提取平面切片
Volume Visualization
IDLgrVolume – 3DVolume对象 IDLgrVRML – 保存为VRML 2.0 格式文件 XOBJVIEW_WRITE_IMAGE – XOBJVIEW中
的对象写入图像文件
Volume Visualization
3D Transformations & Scene Setup
SCALE3 – 设置3D绘图的区域和视角
3D Transformations & Scene Setup
T3D – 进行3D变换操作
T3D, /RESET, ROT = [ 30,0,0], PERS = 1. T3D, /RESET, TRANS = [-.5,-.5,0], ROT =
PARTICLE_TRACE – 向量场跟踪粒子路径 STREAMLINE – 路径可视化
IDL第六章 图像处理
Array:原始数组 X, Y, Z :X,Y,Z三个维度更改后的大小 Result:重采样后结果数组 CUBIC=value{-1 to 0}] :重采样方法为三次立方
卷积,值为参数 /INTERP:重采样方法为双线性内插法
6.3 图像重采样- expend
EXPAND, A, Nx, Ny, Result
Angle:旋转角度 [Mag, X0, Y0] :放大缩小比例,旋转中心
[, /INTERP]:双线性插值 [, MISSING=value]:背景色设置
6.5 图像旋转与翻转-举例
img=indgen(3,2)+1 ; filename=dialog_pickfile() ; read_jpeg,filename,image img1=rotate(img,1) img2=rotate(img,2) img3=rotate(img,3) img4=rotate(img,4) img5=rotate(img,5) img6=rotate(img,6) img7=rotate(img,7) img8=reverse(img,1) img9=reverse(img,2) img10=rot(img,30)
6.6 图像平滑
可以通过将每个像素值与它周围相邻像素值进 行平均来平滑图像。 均值平滑是由IDL中的功能函数Smooth完成的 ,它是在给定的奇数宽度的范围内实现等加权 值平滑。例如,如果周围是3*3宽度,那么每 个像素由它和它的周围八个像素值的平均值代 替。 Result = SMOOTH( Array, Width)
6.5 图像旋转与翻转
IDL功能及应用介绍
IDL Analyst 集成了IMSL
• International Mathematics and Statistics Library • 由Visual Numerics, Inc从1970s开始开发 • IMSL 是著名的包含全面的数学和统计函数的 软件包,,拥有超过 300 个已证明且精准的数 学统计算法 • IDL Analyst中包含了除了金融领域的所有C函 数库
Survival Analysis 残余分析
Probability Distribution Functions and Inverses
Random Number Generation
Math and Statistics Utilities
IDL Analyst无缝集成了IMSL函数
• 185 IMSL 数学和统计函数无缝集成到IDL命令行环境中 • 每一个函数: – 全部经过测试 – 全部提供文档 – 移植到不同平台 – 健壮的 – 精确的 – 可靠的 – 提供全面的支持
IDL小波工具包
并行运算
IDL_IDLBRIDGE
IDL开发环境
全功能编译器
工程管理 大的应用 程序
颜色区分 的编辑器
输出日志
变量查看窗口
命令行操作
GUI开发工具
拖拽式GUI工具
可扩展性强
• 连接 Fortran、 C或是 C++代码
• IDL 调用Window DLL或Unix共享类库
• COM兼容的 ActiveX 控件和容器 • IDL DataMiner 连接ODBC数据库 • 通过Java Bridge访问Java对象
真伪彩色图像显示
图像真彩色、假彩色和伪彩色显示
一、背景知识
计算机表示颜色也是用二进制。
16位色的发色总数是65536真彩色,也就是2的16次方;24位色被称为真彩色,它可以达到人眼分辨的极限,发色数是1677万多色,也就是2的24次方。
图像显示的时候可能涉及到真彩色显示、伪彩色显示和假彩色显示等方式。
IDL下显示图像又有直接图形法、对象图形法、智能化工具可视化和快速可视化四种,后面分别以代码的形式给出各种模式下的图像显示例程,仔细看注释。
二、基本概念
真彩色(True Color):真彩色是指在组成一幅彩色图像的每个像素值中,有R、G、B 三个基色分量,每个基色分量直接决定显示设备的基色强度产生彩色。
伪彩色(Pseudo Color):每个像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作颜色查找表(color look-up table,CLUT)的表项入口地址,去查找一个显示图像时使用的R,G,B强度值,用查找出的R,G,B强度值合成产生彩色。
假彩色(False Color):将多波段单色影像合成为假彩色影像,如landsat 7/ETM+有八个波段,用其中三个合成就是假彩色。
从实现技术上讲,假彩色与真彩色是一致的,都是R、G、B分量组合显示;伪彩色显示调用的是颜色表。
三、代码实现。
IDL中draw,view,image坐标体系与关系论
[前言]本文讨论是IDL对象图形法情况,也就是WIDGET_DRAW 的参数GRAPHICS_LEVEL=2 时候的情况。
---------------------------------------------------------------------------------------------------在IDL的各种元素的关系和参数设置中,最复杂的莫过于widget_draw,IDLgrview,IDLgrimage,也就是下文简称的draw,view和image。
对与这3样,用过IDL再熟悉不过了,很多人都会用一点,但可能很少人能完全搞明白它们之间的差数设置和坐标关系。
1 .draw的坐标设置(也就是大小)比较简单,就两种参数xsize和ysize,x_scroll_size 和y_scroll_size.简言之,xsize和ysize是draw的实际大小,也决定着draw的坐标范围(event.x,event.y);x_scroll_size 和y_scroll_size决定这draw实际显示的大小。
2.view与坐标相关的参数有3个:dimensions,location,viewplane_rect。
其中前两个(dimensions,locaton)是与draw的坐标体系(xsize,ysize)相关,分别表示的是view在draw中显示的大小和左下点在draw里的位置。
dimensions 如果小于或大于draw的大小,view里的东西(model)就会缩放。
viewplane_rect 是view自己的虚拟空间的坐标。
vewplane_rect是一个含有4个元素的1维数组,前两个表示建立的虚拟坐标左下角的坐标,后两个表示这个虚拟坐标系的范围大小。
所以本质上来说viewplane_rect与dimenstions和location没有任何关系。
3.image 做为对象原子和IDLGRPOLGYGON等等一样是不能直接放在view里面,image必须放在上一层的容器里(IDlgrmodel),然后model在放进view里。
实验三 IDL图像处理
实验三IDL图像处理目的:掌握IDL图像处理的手段内容:1、显示图像事实上,任何类型的二维数据集都可认为是一幅图像。
但是要在一个8位的显示设备上显示图像数据,就必须将图像数据调整为 0~255之间的字节型数值。
(在一个24-bit的显示设备上,24位图像的RGB值必须调整成字节型数值)。
因为图像总是以字节型数值显示,所以图像总是以字节型数组来存储。
但是无论图像是怎样存储的,在IDL中,图像总是由两个显示图像的IDL命令:TV和TVScl以字节型数值来完成。
可用TV和TVScl两个IDL命令中的任一个来显示图像。
这两个命令几乎在各个方面都是一样的,包括能与之一起使用的关键字。
仅仅在一个方面不同:TVScl将图像数据调整为与IDL运行时所用颜色数目相适应的字节型数值。
注意,与Plot,Surface和Contour命令不同,TV和TVScl命令在显示图像之前不删除窗口中已显示的内容。
一般情况下这个问题影响不大,但有时候也会产生一些麻烦。
如果想要一个空白的显示窗口来显示图像数据,无论当前窗口上的显示内容是什么,都可用一个简单的命令Erase来删除。
IDL>Erase要了解这两个命令是怎样工作的,需要有一些图像数据用于处理。
用命令LoadData来打开图像数据集Ali and Dave。
将要处理这两幅图像数据中的第二幅图像。
键入IDL>image=LoadData(10)IDL>image=image[*,*,1]打开一个显示窗口,装上灰度颜色表, 用TV命令显示图像:IDL>Window,0,XSize=192,YSize=192IDL>TV,image所得图像:IDL和Research Systems公司的创始人--David Stern的图像。
People.dat数据集中的另外一幅图像是Ali Bahrami,Research Systems公司的第一位员工。
他们两人依然致力于IDL的开发因为使用的是TV命令,所以数据没有经过拉伸就被送到显示器中显示。
3(上)图像可视化之对象图形法
• IDLgrImage
• IDLgrColorbar • IDLgrPalette • IDLgrFont
——
—— —— ——
图像对象,显示分类结果
颜色条对象 颜色表对象 字体对象,修改颜色表标注字体
快速可视化-用户界面构建
提供了与WIDGET_DRAW对应的显示控件
WIDGET_WINDOW 调试运行:\chapter10\Visualization\quick_window.pro
Dimension、Location和ViewPlane_Rect Eye-定义为视点的位置
运行 \chapter09\ViewImageDemo 运行 \chapter09\imageViewer.pro
对象图形法-基本图形对象
IDLgrView对象
Projection,与地理投影无关 三维图像转二维显示时所用到的投影,分平行投影和透视投影两 种。
事件处理
快速可视化-2048
事件处理
测试运行 \chapter10\Game2048.pro
快速可视化-显示分类图像
利用对象图形法显示ENVI遥感图像分类结果
调试运行\chapter10\test_quick_class.pro
显示分类图像-三种可视化方法对比
快速可视化
• Image • Colorbar —— —— 显示图像 显示颜色条
图形可视化之
• 对象图形法 • 快速可视化
• 智能化编程工具
对象图形法
对象图形法-目录
概述 对象的层次结构 对象的基本操作 基本图形对象
二维图形显示
三维图形显示 对象的交互操作
编写类
(完整版)IDL入门教程二(下)(简单图形显示I)
从IDL5版本开始,Contour命令一般都使用单元跟踪法来绘制等值线图。
所以,Follow关键字已经过时了。
但该关键字仍然被使用,是因为它对自动标注其它每条等值线的有益作用。
选择等值线数目缺省情况下,IDL选择6条匀称的等值线间隔(即有5条等值线)绘制等值线图。
但是,可以用几种不同的方法改变缺省值。
例如,可以用Nlevels关键字告诉IDL需要绘制多少条等值线。
IDL将计算出等间隔的等值线间隔数。
例如,要绘制具有12条等间隔的等值线图,可键入:IDL>Contour, peak, lon, lat, Xstyle=1, Ystyle=1, /Follow, $Nlevels=12输出结果应与图18相似。
可选择高达29条的等值线。
图18:这是将等值线级别设置为12的等值线图。
注意,每隔一条等值线都会标注一条,这是使用Fellow关键字的一种副作用。
不幸的是,尽管IDL文档称IDL将采用给定的等间隔的等值线间隔数,但事实上不是这样。
如果注意观察所创建的等值线图,会注意到IDL只计算出少于12条的间隔线。
显然,NLevels关键字的值在IDL中只能作为等值线选择算法中的一个“建议”。
因此,大多数IDL程序员都是自己计算等值线数目。
例如,能精确规定哪条等值线应该画,并用Levels关键字传给Contour命令,而不是用NLevels关键字,如下所示:IDL>vals=[200, 300, 600, 750, 800, 900, 1200, 1500]IDL>Contour, peak, lon, lat, XStyle=1, YStyle=1, /Follow, $Levels=vals要选择12个间距相等的等值线间隔,可编写如下代码:IDL>nlevels=12IDL>step=(Max(peak)-Min(peak))/nlevelsIDL>vals=Indgen(nlevels)*step+Min(peak)IDL>Contour, peak, lon, lat, XStyle=1, YStyle=1, /Follow, $Levels=vals如果喜欢,可以C_Labels关键字精确的指定哪一根等值线应该标注。
IDL入门教程4(图形显示技术)
第四章图形显示技术本章概要在学会怎么显示线画图、曲面图和等值线图后,就能够够用自己的想象力和制造力来显示数据了。
本章给出了许多特殊的可视化技术以增强数据显示能力。
没有打算描述IDL 中每一种可能的技术。
本章将介绍一些更普遍的技术。
本章的目的是为读者提供工具和概念,以便帮忙读者制造自己独特的数据显示。
将学到:1.IDL如何运用颜色2.如何在IDL中创建和保留颜色谱表3.如何按标准修改坐标轴的注记4.如何用IDL处置坏的或残缺的数据5.如何成立三维坐标系并在里面显示数据6.如何组合简单图形显示7.如何用动画显示图形8.如何将XYZ数据格网化以便图形显示IDL的颜色运用IDL的颜色由三种特殊值组成。
称这些数值为一个三色组,将其写成(R,G,B)即红、绿、蓝,其中红、绿、蓝代表红光、绿光、蓝光作用于该显示颜色时的数量,每一个值的范围都在0到255之间。
如此,一种颜色可由256级的红色,256级绿色和256级蓝色组成。
这确实是说IDL能显示256*256*256,或说超过167,000,000种颜色。
举例来讲,黄色由亮红和亮绿组成,但没有蓝色。
代表黄色的三色组写作(255,255,0)。
过去在IDL里常经常使用一种索引号通过查表来取得颜色三色值。
此刻,由于愈来愈多地利用24位图形卡,可直接表示三色值。
若是利用索引,所查寻的那个表就被称作颜色转化表(简称为色谱表)。
一个色谱表由三列数组成,一列代表红色值,一列代表绿色值,一列代表蓝色值。
典型地,这些数列被称为矢量。
当用IDL装载色谱表时,所做的确实是选择正确的数值放进这些列或矢量当中。
请看那个概念的图解(图40)。
利用索引颜色模式和RGB颜色模式除了解一个颜色号代表一种颜色的三色值和色谱表被用来决定三色值之外,必需意识到在IDL里有两种颜色模式。
索引颜色模式用于8位显示器,RGB颜色模式用于24位显示器。
(IDL在PC机和Macintosh运算机上同时利用了一种修悔改的RGB颜色模式,这两种运算机支持16位颜色)。
地学信息三维可视化实习报告计划
地学信息三维可视化实习报告班级:姓名:学号:上交日期:实习一1.利用对象图形法创办一个三维立方体,并将各极点设置为不一样的颜色对象法是IDL5.0 引入面向对象编程观点后出现的,面向对象的根基也就是对象类的使用。
对象类同意编程者将数据和方法封装成一个包,称之为对象。
一个对象类能够重复利用生成多个对象。
IDL 的三维坐标系使用的是右手笛卡尔坐标系,与Microsoft Direct3D的左手坐标系相差别,表示图以下。
程序:PRO triangularprismoWindow =OBJ_NEW( 'IDLgrWindow',dimension =[400, 400 ],retain =2) oView =OBJ_NEW( 'IDLgrView',viewPlane_Rect =[-1,- 1, 3, 3 ],zClip =[ 2 ,- 1],eye =10 )oModel =OBJ_NEW( 'IDLgrModel');创办多边形oPoly =OBJ_NEW( 'IDLgrPolygon');设置对象层次系统构造oView-> oModel->add ,oModel add ,oPoly;极点坐标verts = [[0, 0, 0],[ 1, 0 , 0],[ 0 , 1, 0],[ 0, 0, 1]];极点链接次序connect =[3, 0, 1, 2, 3, 0, 2, 3, 3, 0, 1, 3, 3, 1, 2, 3];设置多边形极点与链接关系,种类显示为线oPoly->setproperty,data =verts, polygons = connect,style =1 ;选择 45°oModel->rotate,[-1, 0 ,- 1], 45;绘制显示oWindow->draw ,oView;设置立方体极点颜色vertscolor =fix( randomu (undefinevar,3, 4)* 255 )oPoly->setproperty, vert_color = vertsColoroWindow->draw ,oView;设置立方风光显示,并衬着显示颜色oPoly->setproperty, shading =1,style=2oWindow->draw ,oViewEND2.读取 head.dat 中的数据,进行体数据的显示,并实现切片提取操作iTools 是 IDL6.0 此后版本供给的功能强盛的交互式剖析工具。
IDL第三章-直接图形法
3.2 图像显示-颜色设置
颜色模式:索引颜色模式和RGB颜色模式 索引颜色模式:索引颜色模式也将索引颜色号
和色谱表中的特定位置联系起来,其对应的是 8位显示器,只能显示28种颜色 RGB颜色模式:RGB颜色模式直接指定颜色, 其对应的是24位显示器,能显示所有224种颜色 。
3.2 图像显示-颜色设置
level值的等高线标注是否显示 /follow:间隔方式自动标注等高线 C_annotation:一个数组,取值为字符串,标注
为字符串 /C_FILL:线填充 /FILL:面填充
3.1 基本图形绘制-等值线图形绘制
举例分析: Dist函数:产生一种距离变换图 Rondomu/Rondomn函数:产生随机数
FOLLOW:自动标注 LEVELS:显示具体数值的等高线 C_LABELS:标注是否显示 C_ANNOTATION标注名称
CELL_FILL 和 FILL:填充模式 C_COLORS:填充颜色
3.1 基本图形绘制-等值线图形绘制
1 2 3 4 5
6
7
8
9
10
11 12 13 14 15
[, {X | Y | Z}GRIDSTYLE=integer{0 to 5}]
[, {X | Y | Z}MARGIN=[left, right]]
[, {X | Y | Z}MINOR=integer]
[, {X | Y | Z}RANGE=[min, max]]
[, {X | Y | Z}STYLE=value]
16 17 18 19 20
21 22 23 24 25
数据行代表x轴,列代表y轴,原点表示第一行 第一列,数据独立与坐标轴数据
坐标轴看成一个二维空间,数据体现在等值线 上
IDL 高级培训基础篇.ppt
基础篇 -语法基础
3. 结构 一种复合变量,它可以将多种类型的数据存储在一个变量中,对于表示意义相关的数据、程序间
交换数据均非常有意义。 类型及定义 命名结构:dot={PIXEL ,x:128 ,y:236 ,color:bytarr(3)},定义后可使用FIXEL定义其他结构 dot1={PIXEL ,x:58 ,y:46 ,color:[255,0,255]}、 dot2={PIXEL ,58 ,46 ,[255,0,255]}、dot3= {PIXEL} 匿名结构:person={name:’jack’ ,id:123456L},定义后无固定结构,可任意改变 person={name:’jack’ ,id:123456L ,phone:’123-4567’} 引用 变量引用:使用变量名或变量在结构中的位置索引。如:dot.x或dot.(0) 数组变量:s={arr:indgen(10)},则s.arr=10将数组所有元素赋值为10。 结构数组 定义:dotarr=replicate({PIXEL} ,10),或dotarr=replicate(dot ,10) 引用:dotarr[1].x=10、dotarr.x=10将所有结构的x赋值为10、dotarr.y=indgen(10) 结构中的变量的类型和(数组)大小 结构定义后,各变量的数据类型以及数组变量的维数均不可改变。当使用中出现不一致时向原类
Pointer Reference
Pointer in Heap Variables
•标量 •数组 •结构
Pointer Data
指针基本操作 创建:ptr=ptr_new( [initexpr] [, /allocate_heap] [, /no_copy] ) 释放:ptr_free ,ptr
IDL入门-基础语法与数据处理案例精解
7
三、IDL集成开发环境
菜单栏和 工具栏
工程窗口
输出日志窗口 变量查看窗口
8
命令行
多文档面板 状态栏
四、IDL应用程序基础
1. 变量
变量、语句不分大小写
strtemp =0 StrTemp =0
变量无需事先说明
IDL> i = 2 IDL> print,i 2
与C/C++不同!!!
9
2.基本数据类型
在数据类型的转换中,如果输出变量类型的字节数少于 输入变量类型的字节数,将会发生截断现象。
10
3.数组
1. IDL是面向矩阵的语言,几乎所有运算都可以
在数组上使用。
2. 数组元素的存储是按列进行的,与其它的语
言有区别。
3. 数组下标是从零开始的,如果某些下标超出
函数:与过程相似,但以function fnname开始,以end结束,并以 return语句返回一个IDL变量。以IDL->ret=fnname(para_list)方 式运行。 在IDL系统中,一个过程或函数即为一个新的IDL命令。
变量作用范围:批处理和主程序方式的变量为全局变量,可以在IDL 开发环境中使用。过程和函数的变量为局部变量,只在过程和 函数运行过程中有效。
17
参数传递
位置参数:在参数列表中按位置列出参数名,严格的顺序限制。通常 用于必选参数。
IDL 的指针与其他语言的指针有很大的不同,它不是指向存储的地址而仅仅是一 个轻型的指向一个堆变量的引用(指针变量)。堆变量可以动态分配(数据类型和数 组维数),这意味着传递指针变量就相当于传递动态数据。
IDL培训对象图形篇PPT
x=[1.2,2.0,7.7,4.5,23.4] y=3.0*x+2.0 new_x=[3.9,6.9,12.0,15.6] new_y=interpol(x,y,new_x) pProps={color:'Light Blue',linestyle:2,symbol_size:0.05,symbol_type:2} pStyle = live_style('plot', GRAPHIC_PROPERTIES = pProps)
Object Graphics: • 硬件加速的3D场景显示,灵活,交互性强 • 对象图形系统主要以程序方式使用 • 图形对象是功能性封装的。即独立的对象包含自己的方法,操作自己的数据 • 图形输出没有当前设备的概念,图形对象为层次结构,并使用输出目标概念 • 图形创建后,数据及其属性驻留内存,便于修改,反复使用 • 对象图形驻留内存,因此在退出时要释放内存,避免内存泄漏
整理ppt
5
对象图形篇 -LIVE_TOOLS
Stand-Alone LIVE Tools LIVE_PLOT ,LIVE_CONTOUR ,LIVE_SURFACE ,LIVE_IMAGE 完整的IDL组件例程,窗口调整、属性设置均可通过鼠标操纵。可以从命令行直接运行
。
sincurve=sin(findgen(360)*!dtor) live_plot ,sincurve
IDL遥感可视化技术第一章-idl简介第一章-idl简介
集成的数学分析和统计软件包可以快速分析处理数据,包括工业标准的数学模型算法和内部函数。 函数库经过充分测试并被集成为一个整体,可进行基本数学分析、信号处理及实验性开发。 函数库已包含在IDL中,您不需要再另外购买其它的函数库。
Map Projections
IDL的特点
IDL=VC 菜单的定制、消息传递 IDL=VB 可视化界面的设计、语言通俗易懂、编程入门容易 IDL=Java 具有良好的跨平台能力,方便移植,面向对象特性 IDL=FORTRAN+C 语言风格绝大部分继承自Fortran,少量来源于C。面向矩阵,执行效率高,代码量比C和Fortran少得多,简洁而不失灵活性。 IDL=MATLAB 提供了大量封装和参数化了的数学函数及各种信号处理的方法,使用方法也非常类似。 IDL=OPENGL 提供了丰富的二维、三维图形图像操作类,能高效快速地对数据进行可视化。
可扩展性强 Embracing standards
Link to Fortran, C or C++ Code COM compliant ActiveX control IDL DataMiner (ODBC) Java
IDL小波工具包
IDL— 可视数据分析的解决方案 应用领域
地球科学 医学影像 图像处理 软件开发 大学教学 实验室
遥感可视化技术
主要内容
IDL 概况 IDL功能简介 应用实例展示 学习IDL
IDL概况
IDL(Interactive Data Language,交互式数据语言)是美国ittvis公司的旗舰产品,它既是对数据进行可视化表现、分析及应用开发的软件,又是面向矩阵、语法简单的可视化计算机语言。是进行数据分析、可视化表达与跨平台应用开发的理想工具。 IDL用户涵盖NASA、ESA、NOAA、Siemens、GE Medical、Army Corps of Engineers、MacDonald Dettwiler 等。 NASA选用IDL进行飞越火星航空器的研究,JPL科学家利用IDL对“勇气号”和“机遇号”的数据进行数据分析和处理。
图像处理知识及IDL实现
Pro ZoomImagedirect file = filepath('convec.dat', subdirectory = ['examples', 'data']) imagesize = [248, 248] image = read_binary(file, data_dims = imagesize) device, decomposed = 0 & loadct, 0 window, 1,xsize=imagesize[0],ysize=imagesize[1],title='grey image' tv, image zoom, /new_window, fact=2,xsize=imagesize[0],ysize=imagesize[1] End
31
SLIDE_IMAGE , Image, /BLOCK, RETAIN={0|1|2} , TITLE=string, XSIZE=width, YSIZE=height 示例
PRO PanImageDirect file = filepath('nyny.dat', subdirectory = ['examples', 'data']) imagesize = [768, 512] image = read_binary(file, data_dims = imagesize) device, decomposed = 0 loadct, 0 slide_image, image END
7
CMYK模式 RGB模式 (用于显示打印)
● 特点:色彩鲜艳
(用于印刷)
● 特点:色彩灰暗
IDL
• IDL用户涵盖NASA、ESA、NOAA、Siemens、GE Medical、Army Corps of Engineers、MacDonald Dettwiler 等。 • NASA选用IDL进行飞越火星航空器的研究,JPL科学家利 用IDL对“勇气号”和“机遇号”的数据进行数据分析和 处理。
– IDL支持的文件格式
– IDL图像处理简介
• IDL程序导读与语法解析
– 变量、数组、过程、函数、 输入输出、循环、分支、判 断等语法基础。
• 并行IDL简介 • 进一步学习IDL
IDL是什么
• IDL(Interactive Data Language,交互式数据语言)是美国 ittvis公司的旗舰产品,它既是对数据进行可视化表现、分 析及应用开发的软件,又是面向矩阵、语法简单的第四代 可视化计算机语言。是进行数据分析、可视化表达与跨平 台应用开发的理想工具。
– 64位长整型nLL及64位无符号长整型nULL。(8字节) 94LL, 12ULL。
– Float【n.或.nF或n.n或nE或nEsx】(4字节)3.14, 0., 3.14E12 – Double 【n.或nd或n.n或nE或nDsx】(8字节)3.14D, 3.14D – Complex 【无】(单精度8字节,双精度16字节) complex(1.7,1.44),complex(1.44D, 4.7D) – String 【无】‘hello IDL‘ ―I‘m a string!‖
IDL支持的图像格式(续表)
Format MPEG Description Moving Picture Experts Group format
MrSID
NRIF PICT PNG PPM SRF TIFF
IDL对象图形法应用于科学数据可视化
IDL对象图形法应用于科学数据可视化董彦卿交互式数据处理开发语言IDL一直是应用程序开发和科学家进行可视化与分析的首选语言,因为它功能强大、简单易学,很少的几行代码就能实现其他语言很难实现的功能。
IDL拥有的对象图形法能灵活、方便地构建图形图像,本文以气象数据为例,介绍利用对象图形法快速实现气象数据可视化,一起领略IDL应用于科学数据可视化的魅力。
1.IDL的优势与其他常规语言相比较,IDL语言的优势主要体现在以下几个方面:语法简单、功能强大IDL是第四代面向对象的语言,语法简单,功能强大,并内建大量数学、统计、图像处理和信号分析工具包。
图1IDL函数快速构建应用程序原型IDL是一种解释性语言,在一些问题上有着立竿见影的结果,同时IDL降低了设计、编译、测试的周期。
IDL内置了大量成熟算法和应用模型,而且大部分的工具都提供源程序,可供用户参考。
可以很方便的参考这些代码。
快速可视化IDL下有智能可视化(iTools Visualizations)、直接图形法(Direct Graphics)和对象图形法(Object Graphics)三种可视化模式。
三种模式各有其优点:智能可视化方便、快捷,包含了一系列的预置处理和分析功能,它是基于对象图形法的一个系统集成应用;直接图形法的绘图质量高、速度快;对象图形法灵活、可操控性好。
在实际的应用中,可根据需求选择相应的可视化模式。
一次编写跨平台运行IDL语言不依赖于操作系统平台,代码可以一次编写,多处运行,保护了用户的投资。
IDL支持Windows、UNIX、Macintosh、Linux等多种操作平台,基本上消除了对操作系统的依赖性,实现跨平台的代码共享。
灵活的外部语言接口IDL既是ActiveX/COM控件,又是ActiveX/COM容器。
利用ActiveX技术,您可以将IDL的图形功能嵌入到VB,VC++等编写的Windows程序中。
同样,在Windows 系统中用户也可以在IDL中使用ActiveX控件来扩展IDL程序的功能。
使用IDL进行图像处理的技巧与实践
动画的注意点和应用方法 ,为科学研究提供应用基础和方法。
面的信息是 否可以丢失 :图 3 ()为原 图 , () 为丢失 A— a b l pa h 通道信息后显示 的图像 ,可见 与实际 P G图像 差别很大 , N
无法应用 。而将 Ap a通道 的信 息显 示 出来 ,如 图 3 ()所 lh c
C靠 o 帐 妯 MP EG T S 。 E T l >确 蹬 l赋 DL e M 瞧 ts : 17 O O e t .甜 ∞
—
一
瞅 . “ p
记 录格式 ( a dIt lae yLn ,B L B n e evdb ie I)的 图像 更 为容易 , nr 可以使用 Ta soe0 g,f,,/ rnps mae 1 0)方法 首先进 行转 换 ,然后 2
电脑 编 程 技 巧 与维 护
使 用 I L进行 图像处理 的技巧 与实践 D
杨斌
( 阴师范学 院数学科学 学院 ,江 苏 淮安 2 30 ) 淮 2 3 0 摘 要 : 针对逐渐 兴起 的第四代可视化 语言 I L进行 了一 些应 用探讨 ,研 究在 I L中坐标 系、透 明图像 和 A I D D V 视
航 空器研究 。I L还参与 了 2 0 D 0 4年火 星探测计划 的测 试和传
感 器设计 ,J L的科 学家利用 I L对 “ P D 勇气 号”和 “ 机遇号 ”
IDL如何编写一个对象图形系统
交互式绘图简介:IDL中的组件程序采用用户图形界面(GUI),它允许用户在程序中控制信息流,使用名为控件的简单图形控制元件,如下拉菜单,按钮和滚动条等来实现与组件程序的交互。
XLOADCT就是IDL中的一个组件程序。
组件程序的优点在于可对用户隐藏用来建立及运行程序的代码,因此用户几乎不需要有什么准备知识就可以自如的使用该程序。
当然组件程序使用时的难易取决于程序员的设计和编写能力。
在IDL中编写组件程序是很容易的,用于创建组件程序代码可在任何IDL支持的平台下运行。
组件程序一般用来为IDL的内置图形例程提供用户界面。
本章中我们将建立一个允许用户控制某些IDL直接绘图功能的组件程序。
IDL组件工具IDL组件工具是一组函数和过程,它们用于创建并控制组件程序。
表4-1列出了10种基本的IDL组件工具,可在组件程序中联合使用以形成复杂的用户界面(无需或只需稍作改动表4-1:IDL组件工具箱中的十种基本组件组件程序实质上是等级性的,表示程序中单个组件间关系的图表看起来就像一棵树。
组件的顺序,称为组件层次构架,决定了GUI的显示状况。
程序员对GUI中单个组件的布局有绝对的控制权。
在IDL中,每个组件通过使用其相应的组件创建函数(见表4-1)生成。
例如要创建一个按钮组件,应用如下格式调用WIDGET_BUTTON函数:button_id=widget_button(parent_id)变量button_id是该组件从创建函数返回后取得的唯一标识。
组件名用于创建组件后对组件的控制操作。
在组件层次构架中,变量parent_id是位于按钮组件直接上方的组件标识(组件名)。
表4-2中列出了WIDGET_CONTROL,WIDGET_INFO和XMANAGER等例程。
通过使用这些例程可实现对组件的控制和交互。
例如,要改变刚才创建按钮的标签,可使用WIDGET_CONTROL过程,将组件名传入:widget_control,button_id,set_value=‟A Push Button‟WIDGET_CONTROL的另一个重要应用是将组件按层次绘制在屏幕上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IDL 对象图形法-图像对象IDLgrImage用例解析
pro GrImage;IDL图像对象用例详解
oWindow=IDLgrWindow(DIMENSIONS=[400,300])
oView=IDLgrView()
oModel=IDLgrModel()
oView.Add,oModel
oWindow.SetProperty,GRAPHICS_TREE=oView
;SUBDIRECTORY子目录
file=FILEPATH('tree.png',SUBDIRECTORY=['examples','data'])
queryStatus=QUERY_IMAGE(file,imageInfo) ;把图片信息读到imageInfo中
imageSize=imageInfo.dimensions ;图片大小
image=READ_IMAGE(file) ;把图片数据读入到image中
oImage=IDLgrImage(image)
oModel.Add,oImage
oView.SetProperty,VIEWPLANE_RECT=[0,0,imageSize]
oWindow.SetProperty,DIMENSIONS=imageSize
oWindow.Draw
end
file=FILEPATH('tree.png',SUBDIRECTORY=['examples','data']) 选择了一个文件,他的目录是安装目录的Exelis\IDL83\examples\data 文件夹下,这里的tree.png图片是我自己放进去的,他自
己不会附带。
也可以不用SUBDIRECTORY 这个属性,直接在前面用绝对路径,也可以定位一个图片文件。
二、常用变换
(1)横向显示
;设置显示区域为x方向为图像三倍
oView.SetProperty,VIEWPLANE_RECT=[0,0,imageSize]*[0,0,3,1]
;创建RGB波段图像
oRed=IDLgrImage(image[0,*,*])
oGreen=IDLgrImage(image[1,*,*],LOCATION=[imageSize[0],0])
oBlue=IDLgrImage(image[2,*,*],LOCATION=[imageSize[0]*2,0])
oModel.Add,[oRed,oGreen,oBlue]
oWindow.SetProperty,DIMENSIONS=imageSize*[3,1]
oWindow.Draw
(2)重叠显示
oGreen.SetProperty,LOCATION=imageSize*.5
oBlue.SetProperty,LOCATION=imageSize
oWindow.SetProperty,DIMENSIONS=imageSize*2
oView.SetProperty,VIEWPLANE_RECT=[0,0,imageSize]*[0,0,2,2]
oWindow.Draw
三、颜色显示
颜色表需要用到IDLgrPalette 对象
pro GrPalette;IDL颜色表用例详解
oWindow=IDLgrWindow(DIMENSIONS=[400,300])
oView=IDLgrView(VIEWPLANE_RECT=[-100,-50,400,300])
oModel=IDLgrModel()
oView.Add,oModel
oImage=IDLgrImage(BYTSCL(dist(200))) ;图像显示的都是0-255的值,所以需要转换成byte 型
oModel.Add,oImage
oWindow.Draw,oView
end
oPalette=IDLgrPalette()
oPalette.LoadCT,2 ;载入索引为2的系统颜色表oImage.SetProperty,PALETTE=oPalette oWindow.Draw,oView。