美文网首页@EZ翻译计划
EZ | Convolutions | GEE - 12

EZ | Convolutions | GEE - 12

作者: 杜若飞er | 来源:发表于2019-08-21 15:00 被阅读0次

Convolutions


卷积

想要对图像执行线性卷积操作,使用image.convolve()函数。该函数只有一个参数,称之为ee.Kernel,它由形状和kernel中的权重共同决定,输出的图像中每个像素值都由内核值和输入图像像素值的线性组合共同确定。内核分别应用在每个波段,例如,当需要使用平滑内核过滤掉高频信息,可做如下操作:

// Load and display an image.
var image = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318');
Map.setCenter(-121.9785, 37.8694, 11);
Map.addLayer(image, {bands: ['B5', 'B4', 'B3'], max: 0.5}, 'input image');

// Define a boxcar or low-pass kernel.
var boxcar = ee.Kernel.square({
  radius: 7, units: 'pixels', normalize: true
});

// Smooth the image by convolving with the boxcar kernel.
var smooth = image.convolve(boxcar);
Map.addLayer(smooth, {bands: ['B5', 'B4', 'B3'], max: 0.5}, 'smoothed');

使用低通的滤波器进行卷积,输出图如Fig.1所示。观察内核的参数明确其尺寸和系数。一般的,将units设置为像素,radius指定为内核覆盖的中心的像素数。如果normalize设置为true,则内核系数之和为1,如果对幅度进行了设置,则内核系数将乘上这个值。如果内核系数中存在负值,则可以将normalize设置为true,总和为零。

Fig.1
使用其它内核来实现所需要的处理效果,这一例子使用拉普拉斯算子内核进行边界检测:
// Define a Laplacian, or edge-detection kernel.
var laplacian = ee.Kernel.laplacian8({ normalize: false });

// Apply the edge-detection kernel.
var edgy = image.convolve(laplacian);
Map.addLayer(edgy,
             {bands: ['B5', 'B4', 'B3'], max: 0.5, format: 'png'},
             'edges');

请注意可视化参数的格式说明符,为了提高运行效率,GEE将会以JPEG格式将图层传递到代码编辑器中,但边界则使用PNG格式,用以处理图像边界像素的透明度。当看起来不够连续时,格式设置为PNG会一致显示。使用拉普拉斯进行边界检测,结果如下图:

Fig.2
还有其他边缘检测的内核,例如Sobel、Prewitt、Roberts等等,可以通过kernel.rotate()进行改变,其他的低通内核还包括高斯核核具有均匀权重的各种尺寸和形状的内核,想要创建具有任意定义权重和形状的内核,使用ee.Kernel.fixed ()函数进行设置。下面的例子设置了一个9*9的内核:
// Create a list of weights for a 9x9 kernel.
var list = [1, 1, 1, 1, 1, 1, 1, 1, 1];
// The center of the kernel is zero.
var centerList = [1, 1, 1, 1, 0, 1, 1, 1, 1];
// Assemble a list of lists: the 9x9 kernel weights as a 2-D matrix.
var lists = [list, list, list, list, centerList, list, list, list, list];
// Create the kernel from the weights.
var kernel = ee.Kernel.fixed(9, 9, lists, -4, -4, false);
print(kernel);

\tag{此页面最后更新于2019年3月18日}

相关文章

  • EZ | Convolutions | GEE - 12

    卷积 想要对图像执行线性卷积操作,使用image.convolve()函数。该函数只有一个参数,称之为ee.Ker...

  • EZ | Image Visualization | GEE -

    图像可视化 前面的文档中已经介绍了如何使用map.addLayer()函数对image做可视化,如果你不加任何参数...

  • EZ | Introduction | GEE - 01

    请注意,GEE不适用于任何SLA或者弃用政策,点击这里注册账户。 介绍 欢迎使用GEE,这是世界上最棒的一个基于云...

  • EZ | Python Installation | GEE -

    概览 GEE的Python语言的API是一个客户端库,想使用这个API,最少要安装PythonAPI客户端库和他的...

  • EZ | Get Help | GEE - 06

    Get Help GEE的教程和开发文档旨在帮助用户开始常规分析,但学习使用GEE做一些特定的分析任务就不太容易了...

  • EZ | Image Overview | GEE - 07

    所谓Image 就像Get Started文档中所言,GEE中的光栅数据被表示为Image对象,Image们有一个...

  • EZ | Command Line Tool | GEE - 0

    earthengine工具是一个实用的程序,用来管理你的GEE资产库和命令行的任务,当你安装Python的API时...

  • GEE学习笔记 一

    初识GEE GEE简介GEE应用范围GEE优缺点GEE初识 1.GEE是什么? GEE(全称Google Eart...

  • GEE学习笔记 零

    GEE初识 GEE示例以及学习资源介绍 GEE工作台介绍 GEE资源查找 GEE资源上传 GEE资源导出 GEE控...

  • 喜欢少女时代的第六年

    一首Gee火遍大江南北,随处可以听到gee gee gee gee baby baby,那时还不知道自己会以后会...

网友评论

    本文标题:EZ | Convolutions | GEE - 12

    本文链接:https://www.haomeiwen.com/subject/xinbsctx.html