Я намагаюся розпізнати водні шляхи по аерофотознімкам (скажімо з Google Maps). Органи місцевого самоврядування часто мають дані ГІС, які говорять про те, де знаходяться водні шляхи (і дороги, будівлі тощо), але дані про води в них часто є дещо неточними, і ми могли б вдосконалити їх за допомогою аерофотознімання. Отже, у нас вже є деякі дані, яким не завжди можна довіряти.
Я знаю, як зробити якусь основну обробку зображень на даних (на жаль, у мене ще немає прикладних зображень для показу, я намагаюся уявити, як я міг би це зробити, ще немає робочого коду):
Я можу зібрати деякий набір кольорових значень, використовуючи шматочки водного шляху в зображеннях, і визначити, які пікселі найближчі до цих кольорів, можливо, також для інших типів функції (трава, дороги, будівлі тощо). Якщо я встановлю поріг, на якому пікселі "достатньо близькі", я отримую набір пікселів, які, ймовірно, є водними шляхами (але буде багато шуму).
Я можу перетворити зображення в масштаб сірого і використовувати стандартний алгоритм виявлення країв, щоб визначити, де є краї. Знову ж таки, це дає мені набір пікселів подібних меж, але буде шум, і краї будуть занадто думати та / або матимуть прогалини.
Що я хочу мати як вихід - це набір багатокутників, які окреслюють ймовірні водні шляхи.
Інтуїтивно я хотів би використовувати виявлені краї для створення багатокутників та кольорову інформацію, щоб визначити, хто з них є водою, можливо, використовуючи урядові дані, які ми вже маємо.
Чи відомий спосіб дістати з результату алгоритму виявлення ребер до приємного набору закритих багатокутників? Або будь-які інші поради, як напасти на цю проблему, якщо є кращий спосіб?