Opencv 将具有简单形状的图像转换为多边形

Opencv 将具有简单形状的图像转换为多边形,opencv,image-processing,computer-vision,arcgis,Opencv,Image Processing,Computer Vision,Arcgis,我有一个从ArcGIS服务器导出的简单GIS图层图像,现在我想将其转换回多边形。 做这件事最好的方法是什么 编写我自己的脚本(那么什么是最好的-三角测量?线/边跟踪?) 使用一些工具?(opencv?还有别的吗?) 您显示的图像已光栅化,因此无法返回到原始多边形。 但是,通过一些简单的连接组件分析,您可以提取所有连续的blob(相同颜色)。这些可以完全由它们的边界(蓝线以外的任何东西)表示。 新多边形现在是这些边界像素。当然,可以应用多边形简化来减少多边形中的实际节点数。OpenCV有几种这样的

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

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

  • 您显示的图像已光栅化,因此无法返回到原始多边形。
    但是,通过一些简单的连接组件分析,您可以提取所有连续的blob(相同颜色)。这些可以完全由它们的边界(蓝线以外的任何东西)表示。

    新多边形现在是这些边界像素。当然,可以应用多边形简化来减少多边形中的实际节点数。OpenCV有几种这样的算法

    您显示的图像已光栅化,因此无法返回到原始多边形。
    但是,通过一些简单的连接组件分析,您可以提取所有连续的blob(相同颜色)。这些可以完全由它们的边界(蓝线以外的任何东西)表示。

    新多边形现在是这些边界像素。当然,可以应用多边形简化来减少多边形中的实际节点数。OpenCV有几种这样的算法

    最好、最简单的方法是使用。您可能想要使用的工具是。您可以直接在ArcGIS for Desktop中运行它,也可以在Python脚本中调用它。如果愿意,也可以在ArcGIS for Server中运行它。ArcGIS的所有许可级别都包括“光栅到多边形”工具


    请记住,“光栅到多边形”将尝试将图像的所有部分提取到多边形,包括边界,因此需要进行一些清理。希望这与选择所有边界特征(即图像中的蓝色特征)并删除它们一样简单。

    最好、最简单的方法是使用。您可能想要使用的工具是。您可以直接在ArcGIS for Desktop中运行它,也可以在Python脚本中调用它。如果愿意,也可以在ArcGIS for Server中运行它。ArcGIS的所有许可级别都包括“光栅到多边形”工具


    请记住,“光栅到多边形”将尝试将图像的所有部分提取到多边形,包括边界,因此需要进行一些清理。希望这与选择所有边界特征(即图像中的蓝色特征)并删除它们一样简单。

    尽管Gary使用argGis的答案似乎更好,但如果您只有这张光栅图像,您可以通过保留蓝色像素来提取轮廓(对像素数据进行循环以创建遮罩非常简单,甚至可能
    Mat mask=orig==cv::Vec3b(255,0,0)
    (使用实际边界像素颜色更改值)。然后您可以找到每个轮廓的连接组件,例如使用`
    对点进行矢量化。

    尽管Gary使用argGis的答案似乎更好,但如果你只有这张光栅图像,你可以通过保持蓝色像素来提取轮廓(简单地循环像素数据以创建遮罩,甚至可能
    Mat mask=orig==cv::Vec3b(255,0,0)
    (使用实际边界像素颜色更改该值)。然后,您可以找到每个轮廓的连接组件,例如使用`和使用
    对点进行矢量化。

    在开始该方向的任何研究之前,尝试获取数据,该图像是从中生成的当然,但这是不可能的,我必须解决它。在开始该方向的任何研究之前,尝试获取数据,该图像是从中生成的当然,但这是不可能的,我必须按原样解决它。