在googleearth引擎中使用pythonapi将RGB图像转换为单波段灰度图像

2024-04-20 03:00:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望使用灰度共生矩阵(GLCM)提取googleearth Engine(GEE)中一组RGB卫星图像纹理的摘要统计信息。天哪有一个内置的图像.glcm()函数执行此操作,但是此页(https://developers.google.com/earth-engine/image_texture)中的示例代码表明它需要一个带作为输入:

// Load a high-resolution NAIP image.
var image = ee.Image('USDA/NAIP/DOQQ/m_3712213_sw_10_1_20140613');

// Get the NIR band.
var nir = image.select('N');

// Compute the gray-level co-occurrence matrix (GLCM), get contrast.
var glcm = nir.glcmTexture({size: 4});
var contrast = glcm.select('N_contrast');
Map.addLayer(contrast,
             {min: 0, max: 1500, palette: ['0000CC', 'CC0000']},
             'contrast');

有没有办法把RGB图像转换成GEE中的单波段灰度图像?在

我使用的是pythonapi,所以用Python编写的答案是理想的,但是如果有任何建议,我们将不胜感激!在


Tags: the图像imagevar矩阵rgbselect灰度
1条回答
网友
1楼 · 发布于 2024-04-20 03:00:45

好吧,我想出了一个办法。本文对不同RGB到灰度转换的性能进行了评估,发现亮度在纹理识别和目标检测方面表现良好,因此是GLCM分析的一个很好的选择。{cd1>作为亮度计算。在

我把一些Python代码放在一起创建了一个亮度层:

image = ee.Image("COPERNICUS/S2/20160620T072622_20160620T075216_T36LYJ")

grayscale = image.expression(
      '(0.3 * R) + (0.59 * G) + (0.11 * B)', {
      'R': image.select(['B4']),
      'G': image.select(['B3']),
      'B': image.select(['B2'])
})

下面是一个可以在GEE代码编辑器中工作的Java示例:

^{pr2}$

相关问题 更多 >