欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Google 地球引擎 (GEE) - 初学者的福音一文解释什么是图像拉伸?

最编程 2024-05-04 21:10:20
...

visParams中参数 min,max,gamma参数问题:

Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_min

 

昨天看到有同学对于视觉参数,也就是展现RGB真彩色影像的时候参数的min,max的问题!

说白了这个就是波段digital number (DN)值的最大最小值的确定,因为,每个影像所定义的波段的最大最小值是不同的,我将会用Landsat SR影像和LandsatTOA影像对比来说明这个问题。

Landsat SR影像

Landsat SR影像的展示:

//Landsat影像的除云
var cloudMaskL457 = function(image) {
var qa = image.select('pixel_qa');
var cloud = qa.bitwiseAnd(1 << 5)
.and(qa.bitwiseAnd(1 << 7))
.or(qa.bitwiseAnd(1 << 3));
// 删除不出现在所有波段的边缘像素
var mask2 = image.mask().reduce(ee.Reducer.min());
return image.updateMask(cloud.not()).updateMask(mask2);
};

//影像加载
var dataset = ee.ImageCollection('LANDSAT/LT05/C01/T1_SR')
.filterDate('2011-01-01', '2011-12-31')
.map(cloudMaskL457);
//视觉参数
var visParams = {
bands: ['B3', 'B2', 'B1'],
min: 0,
max: 3000,
gamma: 1.4,
};
Map.setCenter(7.1356, 44.9648, 8);
Map.addLayer(dataset.median(), visParams);

这个影像当中的min和max分别设置成0和3000的道理在哪呢?

先看正常影像的加载:Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_min_02

首先看这个视觉参数的函数:visParams

Map.addLayer(eeObject, visParamsnameshownopacity)

Adds a given EE object to the map as a layer.

Returns the new map layer.

Arguments:

eeObject (Collection|Feature|Image|RawMapId):

The object to add to the map.

visParams (FeatureVisualizationParameters|ImageVisualizationParameters, optional):

The visualization parameters. For Images and ImageCollection, see ee.data.getMapId for valid parameters. For Features and FeatureCollections, the only supported key is "color", as a CSS 3.0 color string or a hex string in "RRGGBB" format. Ignored when eeObject is a map ID.

可视化的参数。对于图像和ImageCollection,有效参数见ee.data.getMapId。对于特征和特征集合,唯一支持的键是 "color",作为CSS 3.0颜色字符串或 "RRGGBB "格式的十六进制字符串。当eeObject是一个地图ID时被忽略。

name (String, optional):

The name of the layer. Defaults to "Layer N".

shown (Boolean, optional):

A flag indicating whether the layer should be on by default.

opacity (Number, optional):

The layer's opacity represented as a number between 0 and 1. Defaults to 1.

Returns: ui.Map.Layer

知道是可视化参数,但是我们不知道为要设置最大最小,那我们看一下不设置这个参数影像如何:

Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_gamma_03

 是不是这张影像基本看不清,如果大家还是不清楚,那么就让你看这个你就懂了:下图是波段的范围值,也就是如果你设置最大最小值,那么他就按照这个最低的去显示,所以转换成0-1之间的关系就需要将最大值乘以1000或者更多,把他归一化后呈现的效果。

Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_min_04

 如果我们把最大值设置成8000后的效果如下:影像亮度就会偏低。

Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_gamma_05

 Landsat TOA影像

看到这里是不是大家明白了,接下来我们快速看一下Landsat TOA影像的RGB影像是不是和SR影像一致呢?

TOA波段的性质:没有scale单位设置,那么它就是归一化后的结果,所以我们接着看代码:

Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_min_06

 

var dataset = ee.ImageCollection('LANDSAT/LT05/C01/T1_TOA')
.filterDate('2011-01-01', '2011-12-31');
var trueColor321 = dataset.select(['B3', 'B2', 'B1']);
var trueColor321Vis = {
min: 0.0,
max: 0.4,
gamma: 1.2,
};
Map.setCenter(6.746, 46.529, 6);
Map.addLayer(trueColor321, trueColor321Vis, 'True Color (321)');

这里没有进行去云,所以影像会有云存在,当然不影响我们RGB的色彩的展示,直接看:

Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_gamma_07

 当设置成0.8时,影像颜色会变深,所以我们要根据自己的实际情况进行分析影像的拉伸程度。

gamma值设置为0.8的时候的影像:同样是伽马值就是调节我们的色彩对比程度的 

Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_max_08 

当min:0,max:1时,不设gamma的时候影像:

Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_gamma_09

  当min:0,max:1时,设gamma=1.5的时候影像:

Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_影像拉伸_10

 当min:0,max:1时,设gamma=2的时候影像:Google Earth Engine(GEE)——初学者福音一文详解什么是影像拉伸?visParams中参数 min,max,gamma参数到底代表什么?_max_11