赞
踩
作为一个GIS软件,对栅格图像的基本支持也是必须的。QGis能够打开显示多种格式的栅格图像,包括常用的JPEG、PNG,以及遥感图像格式ENVI Image、GeoTIF等。今天想来聊一聊简单的几个调整栅格图像对比度、亮度以及拉伸增强显示的基本功能。
关于如何添加数据显示,请参考 栅格矢量数据显示
栅格图层 QgsRasterLayer 与 QgsVectorLayer 一样,都是 QgsMapLayer 的子类,是作为地图空间显示的图层对象。这个对象包含了许多栅格图层的属性以及显示方式等方法,今天我们关心的重点在于拉伸显示、对比度、亮度等调整,因此从API文档中,重点关注几个地方:
setContrastEnhancement 是栅格图层控制拉伸显示的方法,它通过特定的拉伸方式、拉伸值域范围、显示图像的范围等参数来增强显示的样式。定义如下:
其中我们需要特别关注前三个参数。
QgsContrastEnhancement::ContrastEnhancementAlgorithm 为选用的拉伸算法,具体包括:
而 QgsRaster::ContrastEnhancementLimits 为控制增强的值域范围,包括:
QgsRectangle 就是选择要统计值域的范围了,这个参数可以控制拉伸是用全图的值域拉伸还是仅仅根据当前显示范围的值域进行拉伸。
从QgsRasterLayer 的API文档中,我们看到分别包含一个控制对比度显示的类 QgsBrightnessContrastFilter 的引用,于是下面我们关注一下这个类。
QGis中用于控制栅格图像对比度和亮度的对象为 QgsBrightnessContrastFilter ,来看看他的基本方法:
可以看到,调整栅格图层显示亮度的方法为 setBrightness(), 调整显示对比度的方法为 setContrast()。很明了,利用这两个方法就能控制亮度和对比度了,非常简单。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。