IDL图像可视化(八)


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
在这里插入图片描述

4.绘制曲面

5.相关函数