एक हवाई फोटो में जलमार्ग को पहचानना - किनारे का पता लगाने वाली छवियों से बहुभुज


9

मैं हवाई तस्वीरों (Google मानचित्र से कहता हूं) से जलमार्गों को पहचानने की कोशिश कर रहा हूं। स्थानीय सरकारों के पास अक्सर जीआईएस डेटा होता है जो कहता है कि जलमार्ग (और सड़क, भवन आदि) कहां हैं, लेकिन उनमें पानी का डेटा अक्सर कुछ हद तक गलत है, और हम हवाई कल्पना का उपयोग करके उन्हें सुधारने में सक्षम हो सकते हैं। इसलिए हमारे पास कुछ डेटा पहले से ही है जिस पर हमेशा भरोसा नहीं करना चाहिए।

मुझे पता है कि डेटा पर कुछ बेसिक इमेज प्रोसेसिंग कैसे की जाती है (दुर्भाग्यवश मेरे पास यहाँ दिखाने के लिए सैंपल इमेज नहीं हैं, मैं कल्पना करने की कोशिश कर रहा हूँ कि मैं यह कैसे कर सकता हूँ, अभी तक कोई वर्किंग कोड नहीं है):

  • मैं छवियों में जलमार्ग के बिट्स का उपयोग करके कुछ रंगों के मूल्यों को एकत्र कर सकता हूं, और पता लगा सकता हूं कि कौन से पिक्सेल इन रंगों के सबसे करीब हैं, संभवतः अन्य प्रकार की सुविधा (घास, सड़क, भवन आदि) के लिए भी। यदि मैं एक थ्रेशोल्ड सेट करता हूं जिस पर पिक्सेल "पर्याप्त रूप से बंद" होते हैं, तो मुझे पिक्सेल का एक सेट मिलता है जो संभवतः जलमार्ग हैं (लेकिन बहुत शोर होगा)।

  • मैं छवि को ग्रेस्केल में बदल सकता हूं और यह पता लगाने के लिए एक मानक किनारे का पता लगाने वाले एल्गोरिथ्म का उपयोग कर सकता हूं जहां किनारों हैं। फिर, यह मुझे सीमाओं की तरह पिक्सेल का एक सेट देता है, लेकिन शोर होगा और किनारों को भी सोचना होगा और / या अंतराल होगा।

आउटपुट के रूप में मुझे जो चाहिए वह पॉलीगनों का एक सेट है जो संभावित जलमार्गों की रूपरेखा तैयार करता है।

वास्तव में मैं पॉलीगॉन बनाने के लिए पहचाने गए किनारों का उपयोग करना चाहूंगा, और रंग जानकारी यह तय करने के लिए कि उनमें से कौन सा पानी है, संभवतः हमारे पास पहले से मौजूद सरकारी डेटा का उपयोग करना।

बंद पॉलीगनों के एक अच्छे सेट के लिए एक किनारे का पता लगाने एल्गोरिथ्म के परिणाम के लिए एक ज्ञात तरीका है? या इस समस्या पर हमला करने के लिए कोई अन्य सुझाव, अगर कोई बेहतर तरीका है?


1
सिडेनोट: ध्यान रखें कि Google लाइसेंस ऐसा करने की अनुमति नहीं देता है! ओपनस्ट्रीटमैप में एक ही समस्या है । ओएसएम में बिंग छवियों का उपयोग करने के लिए एक समझौता है।
PiNNumber

जवाबों:


6

यह अकेले रंग की जानकारी के साथ करना मुश्किल है। हवाई और उपग्रह इमेजरी के बीच (या यहां तक ​​कि) रंग विविधताएं बहुत बड़ी हो सकती हैं। आदर्श रूप से आप हाइपरस्पेक्ट्रल या कम से कम अवरक्त इमेजरी ( यह पेपर देखें ) चाहते हैं।

अपनी बढ़त का पता लगाने के लिए पिक्सेल की सीमाओं का पता लगा सकते हैं, आप प्रत्येक पिक्सेल की सीमाओं को एक बंद बहुभुज के रूप में ले सकते हैं और एक बहुभुज बनाने के लिए उन्हें एक साथ जोड़ सकते हैं (आपके संघ कार्यान्वयन के आधार पर आप आंतरिक रिंग या छेद के साथ बहुभुज के साथ समाप्त हो सकते हैं) या एक संग्रह बहुभुज की। जावा टोपोलॉजी सुइट और अन्य कम्प्यूटेशनल ज्यामिति कार्यान्वयन आप के लिए यह बहुत आसान बना सकते हैं। यदि आप उप-पिक्सेल सीमाओं का उपयोग करना चाहते हैं, तो आपको बहुत सावधानी बरतने की आवश्यकता होगी कि आपके पास एक अच्छा एप्सिलॉन मूल्य सेट है ताकि आप किनारों को स्नैप कर सकें जो कि बहुत करीब हैं लेकिन बिल्कुल स्पर्श नहीं हैं।

यदि आप किनारों को लेना चाहते हैं और उन्हें अपने आप से जोड़ना चाहते हैं, तो आप किनारों को इंटरसेक्ट करने वाले किनारों का एक ग्राफ बनाना चाहते हैं और कोड को लागू करेंगे जो कि ग्राफ (जैसे काउंटर-क्लॉकवाइज) को खोजने के लिए जहां यह खुद को एक बहुभुज बनाने के लिए बंद कर देता है। इसी तरह से बहुसंख्यकों के संघ के कुछ कार्यान्वयन काम करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.