किनारे का पता लगाने की सुविधा, इमेज प्रोसेस करने से जुड़े कई टास्क के लिए इस्तेमाल की जा सकती है. कंवॉल्यूशन सेक्शन में बताए गए किनारों का पता लगाने वाले केर्नल के अलावा, Earth Engine में किनारों का पता लगाने वाले कई खास एल्गोरिदम भी मौजूद हैं. ऐंगल के किनारों का पता लगाने वाला कैनी एल्गोरिदम (Canny 1986) , डायगनल, वर्टिकल, और हॉरिज़ॉन्टल ऐंगल के किनारों की पहचान करने के लिए, चार अलग-अलग फ़िल्टर का इस्तेमाल करता है. इस हिसाब से, हॉरिज़ॉन्टल और वर्टिकल डायरेक्शन के लिए, पहले डेरिवेटिव की वैल्यू निकाली जाती है और ग्रेडिएंट मैग्नीट्यूड का हिसाब लगाया जाता है. छोटे मैग्नीट्यूड के ग्रेडिएंट को दबा दिया जाता है. ज़्यादा फ़्रीक्वेंसी वाले शोर को हटाने के लिए, इमेज को गॉसियन कर्नेल से पहले फ़िल्टर करें. उदाहरण के लिए:
कोड एडिटर (JavaScript)
// Load a Landsat 8 image, select the panchromatic band. var image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318').select('B8'); // Perform Canny edge detection and display the result. var canny = ee.Algorithms.CannyEdgeDetector({ image: image, threshold: 10, sigma: 1 }); Map.setCenter(-122.054, 37.7295, 10); Map.addLayer(canny, {}, 'canny');
ध्यान दें कि threshold
पैरामीटर, ग्रेडिएंट के कम से कम मैग्नीट्यूड का पता लगाता है और sigma
पैरामीटर, हाई फ़्रीक्वेंसी वाले शोर को हटाने के लिए, गॉसियन प्री-फ़िल्टर का स्टैंडर्ड डिवीऐशन (एसडी) होता है. एज डिटेक्टर से लाइन निकालने के लिए, Earth Engine, Hough ट्रांसफ़ॉर्म (Duda and Hart 1972) लागू करता है. पिछले उदाहरण को जारी रखते हुए, Canny डिटेक्टर से लाइनें निकालने के लिए:
कोड एडिटर (JavaScript)
// Perform Hough transform of the Canny result and display. var hough = ee.Algorithms.HoughTransform(canny, 256, 600, 100); Map.addLayer(hough, {}, 'hough');
Earth Engine में एक और खास एल्गोरिदम zeroCrossing()
है. ज़ीरो-क्रॉसिंग को ऐसे पिक्सल के तौर पर परिभाषित किया जाता है जहां दाईं ओर, सबसे नीचे या डायगनल के सबसे नीचे दाईं ओर मौजूद पिक्सल का साइन उलट होता है. अगर इनमें से कोई भी पिक्सल, साइन के उलट है, तो मौजूदा पिक्सल को 1 (ज़ीरो-क्रॉसिंग) पर सेट किया जाता है. अगर ऐसा नहीं है, तो उसे शून्य पर सेट किया जाता है. किनारों का पता लगाने के लिए,
इमेज के दूसरे डेरिवेटिव के अनुमान पर, शून्य-क्रॉसिंग एल्गोरिदम लागू किया जा सकता है.
यहां किनारे का पता लगाने के लिए zeroCrossing()
का इस्तेमाल करने का तरीका बताया गया है:
कोड एडिटर (JavaScript)
// Load a Landsat 8 image, select the panchromatic band. var image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318').select('B8'); Map.addLayer(image, {max: 12000}); // Define a "fat" Gaussian kernel. var fat = ee.Kernel.gaussian({ radius: 3, sigma: 3, units: 'pixels', normalize: true, magnitude: -1 }); // Define a "skinny" Gaussian kernel. var skinny = ee.Kernel.gaussian({ radius: 3, sigma: 1, units: 'pixels', normalize: true, }); // Compute a difference-of-Gaussians (DOG) kernel. var dog = fat.add(skinny); // Compute the zero crossings of the second derivative, display. var zeroXings = image.convolve(dog).zeroCrossing(); Map.setCenter(-122.054, 37.7295, 10); Map.addLayer(zeroXings.selfMask(), {palette: 'FF0000'}, 'zero crossings');
सैन फ़्रांसिस्को, कैलिफ़ोर्निया के हवाई अड्डे के आस-पास के इलाके के लिए, शून्य-क्रॉसिंग का आउटपुट कुछ ऐसा दिखना चाहिए जैसा कि फ़िगर 1 में दिखाया गया है.