Görüntülerde doğrusal örtüşme yapmak için image.convolve()
simgesini kullanın. Dağıtılacak tek bağımsız değişken, bir şekil ve çekirdekteki ağırlıklarla belirtilen bir ee.Kernel
bağımsız değişkenidir. convolve()
tarafından oluşturulan görüntünün her pikseli, çekirdek değerleri ile çekirdek tarafından kapsanan giriş görüntü pikselleri
arasındaki doğrusal bir kombinasyondur. Çekirdekler her banda ayrı ayrı uygulanır. Örneğin, yüksek frekanslı bilgileri kaldırmak için düşük geçiren (yumuşatıcı) bir çekirdek kullanmak isteyebilirsiniz. Aşağıda, Landsat 8 görüntüsüne uygulanan 15x15 düşük geçirgenlik çekirdeği gösterilmektedir:
Kod Düzenleyici (JavaScript)
// Load and display an image. var image = ee.Image('LANDSAT/LC08/C02/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');
Düşük geçiren filtreyle yapılan convolve işleminin çıkışı Şekil 1'e benzer şekilde görünmelidir. Çekirdeğin boyutunu ve katsayılarını çekirdeğe ait bağımsız değişkenlerin belirlediğini unutmayın.
Daha açık belirtmek gerekirse, units
parametresi piksel olarak ayarlandığında radius
parametresi, çekirdeğin merkezden itibaren kapsayacağı piksel sayısını belirtir. normalize
doğru değerine ayarlanırsa çekirdek katsayıları toplamı bir olur. magnitude
parametresi ayarlanırsa çekirdek katsayıları büyüklükle çarpılır (normalize
da doğruysa katsayıların toplamı magnitude
olur). Çekirdek katsayılarından herhangi birinde negatif değer varsa normalize
değerini doğru olarak ayarlamak, katsayıların toplamının sıfır olmasını sağlar.

İstediğiniz görüntü işleme efektini elde etmek için diğer çekirdekleri kullanın. Bu örnekte, izotropik kenar algılama için Laplacian çekirdeği kullanılmaktadır:
Kod Düzenleyici (JavaScript)
// 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');
Görselleştirme parametrelerindeki biçim belirteci dikkatinizi çekecektir. Earth Engine, verimlilik için görüntü karolarını Kod Düzenleyici'ye JPEG biçiminde gönderir. Ancak kenar karoları, resim sınırının dışındaki piksellerin şeffaflığını işlemek için PNG biçiminde gönderilir. Görsel kesinti oluştuğunda, biçimi PNG olarak ayarlamak tutarlı bir görüntüleme sağlar. Laplas kenar algılama çekirdeğiyle gerçekleştirilen convolve işleminin sonucu Şekil 2'ye benzer şekilde görünür.

Ayrıca, kernel.rotate()
ile yönü değiştirilebilen anizotropik kenar algılama çekirdekleri (ör. Sobel, Prewitt, Roberts) de vardır. Diğer düşük geçirimli çekirdekler arasında Gauss çekirdeği ve eşit ağırlıklara sahip çeşitli şekillerde çekirdekler bulunur. İsteğe bağlı olarak tanımlanmış ağırlıklara ve şekle sahip çekirdekler oluşturmak için ee.Kernel.fixed()
değerini kullanın. Örneğin, bu kod ortasında sıfır bulunan 9x9 boyutunda bir 1'den oluşan çekirdek oluşturur:
Kod Düzenleyici (JavaScript)
// Create a list of weights for a 9x9 kernel. var row = [1, 1, 1, 1, 1, 1, 1, 1, 1]; // The center of the kernel is zero. var centerRow = [1, 1, 1, 1, 0, 1, 1, 1, 1]; // Assemble a list of lists: the 9x9 kernel weights as a 2-D matrix. var rows = [row, row, row, row, centerRow, row, row, row, row]; // Create the kernel from the weights. var kernel = ee.Kernel.fixed(9, 9, rows, -4, -4, false); print(kernel);