当前位置:   article > 正文

QGis二次开发基础 -- 栅格图像增强显示_qgis 设置拉伸值

qgis 设置拉伸值

作为一个GIS软件,对栅格图像的基本支持也是必须的。QGis能够打开显示多种格式的栅格图像,包括常用的JPEG、PNG,以及遥感图像格式ENVI Image、GeoTIF等。今天想来聊一聊简单的几个调整栅格图像对比度、亮度以及拉伸增强显示的基本功能。
这里写图片描述

关于如何添加数据显示,请参考 栅格矢量数据显示

两个类

QgsRasterLayer

栅格图层 QgsRasterLayer 与 QgsVectorLayer 一样,都是 QgsMapLayer 的子类,是作为地图空间显示的图层对象。这个对象包含了许多栅格图层的属性以及显示方式等方法,今天我们关心的重点在于拉伸显示、对比度、亮度等调整,因此从API文档中,重点关注几个地方:

  • setContrastEnhancement 方法
  • 对比度和亮度的控制

setContrastEnhancement 是栅格图层控制拉伸显示的方法,它通过特定的拉伸方式、拉伸值域范围、显示图像的范围等参数来增强显示的样式。定义如下:
这里写图片描述
其中我们需要特别关注前三个参数。

QgsContrastEnhancement::ContrastEnhancementAlgorithm 为选用的拉伸算法,具体包括:

  • NoEnhancement –> 无增强
  • StretchToMinimumMaximum –> 最小最大值拉伸
  • StretchAndClipToMinimumMaximum –> 最小最大值拉伸并裁剪值域范围
  • ClipToMinimumMaximum –> 裁剪值域范围到最小最大值
  • UserDefinedEnhancement –> 用户自定义

而 QgsRaster::ContrastEnhancementLimits 为控制增强的值域范围,包括:

  • ContrastEnhancementNone –> 无增强
  • ContrastEnhancementMinMax –> 最小最大值(默认)
  • ContrastEnhancementStdDev –> 标准差方差范围
  • ContrastEnhancementCumulativeCut –> 累计裁剪范围

QgsRectangle 就是选择要统计值域的范围了,这个参数可以控制拉伸是用全图的值域拉伸还是仅仅根据当前显示范围的值域进行拉伸。

从QgsRasterLayer 的API文档中,我们看到分别包含一个控制对比度显示的类 QgsBrightnessContrastFilter 的引用,于是下面我们关注一下这个类。

QgsBrightnessContrastFilter

QGis中用于控制栅格图像对比度和亮度的对象为 QgsBrightnessContrastFilter ,来看看他的基本方法:
这里写图片描述
可以看到,调整栅格图层显示亮度的方法为 setBrightness(), 调整显示对比度的方法为 setContrast()。很明了,利用这两个方法就能控制亮度和对比度了,非常简单。

两个

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/310989
推荐阅读
相关标签
  

闽ICP备14008679号