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小时内删除。