IDL 对象图形法-图像对象 IDLgrImage用例解析
- 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