لإجراء عمليات التفاف خطي على الصور، استخدِم image.convolve()
. الوسيطة الوحيدة
للدالة convolve هي ee.Kernel
التي يتم تحديدها من خلال شكل و
الأوزان في النواة. كل بكسل من الصورة التي تُخرجها الدالة convolve()
هو تركيبة خطية لقيم النواة وبكسل الصورة المُدخلة التي تغطيها نواة. يتم تطبيق النوى على كل نطاق على حدة. على سبيل المثال، قد تحتاج إلى
استخدام نواة تمرير منخفض (تنعيم) لإزالة المعلومات ذات التردد العالي. يوضّح المثال التالي
نواة تمرير منخفض بحجم 15×15 تم تطبيقها على صورة Landsat 8:
محرِّر الرموز البرمجية (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');
من المفترض أن يبدو ناتج عملية الدمج باستخدام فلتر الترددات المنخفضة على النحو الموضّح في الشكل
1. يُرجى ملاحظة أنّ وسيطات النواة تحدّد حجمها ومعاملاتها.
على وجه التحديد، عند ضبط المَعلمة units
على وحدات البكسل، تحدّد المَعلمة radius
عدد وحدات البكسل التي ستغطيها النواة من المركز. إذا تم ضبط
normalize
على "صحيح"، ستتألّف مُعامِلات النواة من واحد. إذا
تم ضبط المَعلمة magnitude
، سيتم ضرب معاملات النواة في
المقدار (إذا كانت normalize
صحيحة أيضًا، ستتضّمن المعاملات مجموعًا هو
magnitude
). إذا كانت هناك قيمة سالبة في أيّ من معاملات النواة، منجرّ إلى
ضبط normalize
على "صحيح"، ما يؤدي إلى تجميع المعاملات في القيمة صفر.

استخدِم نوى أخرى لتحقيق التأثير المطلوب في معالجة الصور. يستخدم هذا المثال نواة لاپلاسي لاكتشاف الحواف بشكلٍ متجانس:
محرِّر الرموز البرمجية (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');
يُرجى ملاحظة محدّد التنسيق في مَعلمات العرض المرئي. تُرسِل Earth Engine مربّعات الشاشة إلى "محرر الرموز" بتنسيق JPEG لزيادة الكفاءة، ولكن يتم إرسال مربّعات الحواف بتنسيق PNG للتعامل مع شفافية البكسل خارج حدود الصورة. عند حدوث انقطاع في المحتوى المرئي، يؤدي ضبط التنسيق على PNG إلى عرض متناسق. يجب أن تبدو نتيجة التفاف النواة لاكتشاف الحواف باستخدام تصفية لاپلاسي على النحو الموضح في الشكل 2.

هناك أيضًا نوى الكشف عن الحواف غير المتناظرة (مثل Sobel وPrewitt وRoberts)، ويمكن
تغيير اتجاهها باستخدام kernel.rotate()
. تشمل نوى التمويه المنخفضة
الأخرى نواة غاوس ونواة ذات أشكال مختلفة بأوزان موحّدة. ل
إنشاء نوى ذات أوزان وأشكال محدّدة بشكل عشوائي، استخدِم
ee.Kernel.fixed()
. على سبيل المثال، تنشئ هذه التعليمة البرمجية نواة 9x9 من القيم 1
مع القيمة 0 في المنتصف:
محرِّر الرموز البرمجية (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);