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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论