Earth Engine implementuje operacje morfologiczne jako operacje skupione, w szczególności metody instancji focalMax()
, focalMin()
, focalMedian()
i focalMode()
w klasie Image
. (Są to skróty do bardziej ogólnego reduceNeighborhood()
, które mogą przekazywać piksele w rdzeniu do dowolnego modułu redukującego z wynikiem liczbowym. Więcej informacji o zmniejszaniu liczby sąsiedztwa znajdziesz na tej stronie. Operatory morfologiczne są przydatne do wykonywania takich operacji jak erozja, rozszerzenie, otwieranie i zamykanie. Aby na przykład wykonać operację otwierania, użyj focalMin()
, a następnie focalMax()
:
Edytor kodu (JavaScript)
// Load a Landsat 8 image, select the NIR band, threshold, display. var image = ee.Image('LANDSAT/LC08/C02/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 .focalMin({kernel: kernel, iterations: 2}) .focalMax({kernel: kernel, iterations: 2}); Map.addLayer(opened, {}, 'opened');
Zwróć uwagę, że w poprzednim przykładzie operatorowi morfologicznemu przekazywany jest argument jądra. Do obliczeń wykorzystywane są piksele objęte elementami o wartościach innych niż 0. Argument iteracji wskazuje, ile razy ma być zastosowany operator.