java图像白色提取

如何将每个图像用白色提取到单独的部分,如下所示? 在此处输入图像描述

从上面的图片中,提取后会有九个单独的部分

我尝试过几种算法,比如fillgrid但不完全符合我的预期。

这样我就可以将每个部分存储到PostGIS数据库中作为多边形几何体

我可以使用什么算法? 或者java或postgis库中有一个函数?

这个主题可能会对你有帮助,但我认为你可以通过找到图像中的颜色差异来做到这一点。

您需要将栅格数据“多边形化”为矢量。

其中一个工具来自GDAL ,最初的方法是C ++,但也有Java绑定。

  • Java绑定(搜索“Polygonize”)
  • GDALPolygonize参数的C API描述

使用Polygonize方法的一些进一步提示是,您需要将栅格的值分类为“NO DATA”值,然后将剩余数据部分多边形化。 生成的多边形可以放置在大多数地理空间矢量格式中,包括PostGIS数据库。


另一种解决方案是将图像加载到PostGIS栅格中,然后使用ST_PolygonST_DumpAsPolygons执行与GDALPolygonize基本相同的任务,但选项较少。