как извлечь каждое изображение с белым цветом в отдельные разделы, как показано ниже?
из рисунка выше, после выделения будет девять отдельных разделов
Я пробовал несколько алгоритмов, таких как fillgrid, но не совсем то, что я ожидал.
так что я мог бы хранить все разделы в базе данных PostGIS в виде геометрии многоугольника
Какой алгоритм я могу использовать? или, может быть, есть функция в библиотеке java или postgis?
Вам нужно "полигонизировать" ваши растровые данные в векторы.
Один из таких инструментов - из GDAL, с использованием метода изначально в C++, но также имеет привязки к Java.
Некоторые дополнительные советы по использованию метода Polygonize - это то, что вам нужно будет классифицировать значения вашего растра как значения "НЕТ ДАННЫХ", а затем полигонировать оставшуюся часть данных. Полученный многоугольник можно разместить в большинстве геопространственных векторных форматов, включая базу данных PostGIS.
Другим решением является загрузка изображения в растровый ST_Polygon
PostGIS, а затем использование ST_Polygon
или ST_DumpAsPolygons
для выполнения практически той же задачи, что и GDALPolygonize, но с меньшим количеством опций.
Этот поток может помочь вам, но я думаю, вы могли бы это сделать, обнаружив различия в цвете в вашем изображении.