IDL图像可视化
- 1.直接图形法
- 1.坐标信息
- 2.颜色系统
- 1)基础知识
- 2) 实例
- 3)系统变量定义背景颜色和画线颜色
- 2.图形图像显示
- 1.显示窗口
- 2.绘制曲线
- 3.显示图像
- 4.绘制曲面
- 5.相关函数
1.直接图形法
1.坐标信息
1)数据坐标,画图显示的坐标系
2)设备坐标,即屏幕坐标系,左上角为(0,0)
3)归一化坐标
2.颜色系统
1)基础知识
a. IDL下提供两种显示模式
Device,Decomposed=0 是关闭颜色分解,用8位显示模块(即灰度影像)
Device,Decomposed=1 是打开颜色分解,用24为显示模块(即彩色影像)
b. 颜色表操作
xloadct或者loadct,加载颜色表,在命令行输入,选择喜欢的颜色条带。
1 | IDL> xloadct |
TvLCT,green,blue,blue,/Get 获取颜色表
2) 实例
a.选择显示单波段影像
颜色条带选择黑白条带,希望得到白底黑线的效果。对应的颜色取值是(0-255)
1 2 3 4 | IDL> device,decomposed=0 IDL> xloadct IDL> plot,indgen(5),background=255,color=0 IDL> |
b.选择显示3波段影像(真彩色,假彩色,伪彩色)对应的颜色取值是(0-256^3-1)或者(0-'ffffff’x)
I.RGB转换成颜色索引值的函数(自定义)
1 2 3 | function RGB2IDX,RGB return,RGB[0]+(RGB[1]*2L^8)+(RGB[2]*2L^16) END |
结果(两个极值,白色和黑色看结果):
1 2 3 4 5 6 | IDL> rgb_li=[0,0,0] IDL> RGB2IDX(rgb_li) 0 IDL> rgb_zi=[255,255,255] IDL> RGB2IDX(rgb_zi) 16777215 |
II.三波段显示例子:
1 2 3 4 | IDL> device,decomposed=1 IDL> xloadct IDL> plot,indgen(5),background='ffffff'x,color=RGB2IDX([255,255,0]) IDL> |
3)系统变量定义背景颜色和画线颜色
1 2 3 4 | IDL> device,decomposed=0 IDL> !p.BACKGROUND=255 IDL> !p.color=0 IDL> |
2.图形图像显示
1.显示窗口
例子:
1 2 3 4 5 | IDL> window,0,xsize=400,ysize=200,title='huahua' IDL> window,1,xsize=400,ysize=200,title='huahua2' IDL> wset,0 IDL> plot,indgen(5) IDL> |
2.绘制曲线
请君查看IDL帮助内容,自行学习。(direct_graphics)
以下说一些常用关键字的作用
(1),/ISOTROPIC x轴和y轴等比例显示
1 2 | IDL> plot,indgen(5) IDL> plot,indgen(5),/ISOTROPIC |
(2)异常值的处理,将过大值和过小值不进行显示
1 2 3 | IDL> a=[0,1,2,3,100] IDL> plot,a,max_value=10 IDL> |
(3)nsum 绘制散点图时,隔几个点绘制一个点(间隔)
(4)polar 极坐标系
(5)xstyle,ystyle 坐标轴的显示格式
其中xstyle=4,ystyle=4,则坐标轴抑制不显示
(6)axis 坐标轴
(7)对数纵坐标
(8)PSYM,用特定符号绘制散点图(也可自定义特定符号)
(9)一个窗口显示多幅影像,multi
(10)将窗口(当前工作窗口)内显示的图像存为图片格式,TVRD,
(11) 多曲线绘制在同一幅影像上
(12)绘制风格
(13)ynozero,y轴不显示0值,具体y轴显示范围系统自己确定
(14)设置字体(在中文标题的时候要用)
1 2 3 4 | IDL> !p.font=0 IDL> device,set_font='宋体' IDL> plot,indgen(2),title='中文标题' IDL> |
(15)y轴不是中文字符怎么办
!p.font=1
device,set_font=‘stsong’,TT_FONT,characterise=12
(characterize是调整字体大小)
(16)当坐标轴是时间时怎么绘制
参考IDL帮助label_date()函数
(17)等高线绘制
参考IDL参考文档,contour()函数
3.显示图像
(1)裁剪:选取子数组
(2)尺寸变换:rebin(),congrid()
(3)位置变换:rot(),rotate()
(4)域变换 FFT(快速傅里叶变换)
(5)增强和滤波:(拉伸,直方图均衡化,FFT,高通滤波,低通滤波)
(6)边缘算子(sobel,robort)
详情请看IDL帮助文档,image processing routines