1

我有一个从 ArcGIS 服务器导出的简单 GIS 图层图像,现在我想将其转换回多边形。这样做的最佳方法是什么?

  1. 编写我自己的脚本(什么是最好的三角测量?线/边跟踪?)
  2. 使用一些工具?(opencv?还有别的吗?)

png 多边形图像(每种颜色代表一个不同的多边形)

4

3 回答 3

1

您显示的图像已栅格化,因此您无法返回原始多边形。
但是,通过一些简单的连通分量分析,您可以提取所有连续的 blob(相同颜色)。这些可以完全由它们的边界表示(蓝线之外的任何东西)。
您的新多边形现在是这些边界像素。当然,您可以应用多边形简化来减少多边形中实际节点的数量。OpenCV 有几种这样的算法。

于 2013-10-06T09:23:06.767 回答
0

虽然 Gary 使用 argGis 的答案似乎更好,但如果你只有这个光栅图像,你可以通过只保留蓝色像素来提取轮廓(简单的 for 循环像素数据以创建蒙版,甚至可能Mat mask = orig == cv::Vec3b(255,0,0)(用实际更改值)边框像素颜色)。然后您可以找到每个轮廓的连通分量,例如cv::floodFill使用 ` 并使用 cv::approxPolyDp对点进行矢量化。

于 2013-10-07T15:43:08.157 回答
0

最好和最简单的方法是使用ArcGIS 中的从栅格工具集。您可能想要使用的工具是Raster to Polygon。您可以直接在 ArcGIS for Desktop 中运行它或在 Python 脚本中调用它。如果您愿意,也可以在 ArcGIS for Server 中运行它。ArcGIS 的所有许可级别都包括栅格转多边形工具。

请记住,Raster to Polygon 将尝试将图像的所有部分提取为多边形,包括边界,因此您需要进行一些清理工作。希望这就像选择所有边界特征(即图像中的蓝色特征)并删除它们一样简单。

于 2013-10-07T09:56:48.063 回答