形态学操作
GEE把形态学操作视为重要的设计目标之一,尤其是Image类中的focal_max()
、focal_min()
、focal_median()
、focal_mode()
等方法,它们都是更加普适性的reduceNeighborhood()
的一些预定的快捷方式,它将内核中的像素输入到具有数字输出的reducer。形态学算法对于执行侵蚀(erosion)、膨胀(dilation)还有打开关闭等操作是很有效果的。举个例子,想要执行打开操作,可以使用focal_min()
后使用focal_max()
:
// Load a Landsat 8 image, select the NIR band, threshold, display.
var image = ee.Image('LANDSAT/LC08/C01/T1_TOA/LC08_044034_20140318')
.select(4).gt(0.2);
Map.setCenter(-122.1899, 37.5010, 13);
Map.addLayer(image, {}, 'NIR threshold');
// Define a kernel.
var kernel = ee.Kernel.circle({radius: 1});
// Perform an erosion followed by a dilation, display.
var opened = image
.focal_min({kernel: kernel, iterations: 2})
.focal_max({kernel: kernel, iterations: 2});
Map.addLayer(opened, {}, 'opened');
注意一下在此例中,内核参数是由形态运算符所提供的。在计算中使用由内核的非零元素覆盖的像素,迭代(iterations)数字指示了使用这一运算的次数。
网友评论