当前位置: 首页 > 知识库问答 >
问题:

地图图像中“凹壳”的检测

乐正嘉瑞
2023-03-14

我正在为Waze开发开源JavaScript插件——著名的免费GPS导航器——专门为在线编辑器开发。这个用户脚本的想法是可以快速选择大的统一颜色的地图区域,将它们转换为地标。

到目前为止,我已经成功地在Photoshop这样的图形编辑器中实现了一个你称之为“魔杖”的工具:用户点击地图上的某个地方(比如,在湖泊或森林上),脚本选择相同颜色覆盖的整个区域,并为地标创建一个多边形。

一切都很好,除了我使用凸包算法来获得。。。好凸包:)即:连接已找到点云的最外部点的多边形。

但众所周知,只有少数地标具有凸形,而大多数现实世界中的物体具有带有凹形区域的折线形状。在上面的图片上,你可以看到这个区域几乎没有尖锐的边缘,右下角有一个被凸形船体覆盖的农田——这是错误的。

我在谷歌上搜索合适的算法,翻阅数学试卷,但还是没找到。关于Stackoverflow上的凹面外壳,最常见的问题是Alpha形状和Delaunay三角形。虽然我不知道如何在这种情况下使用它:所有的点相互连接,形成一条连续的多段线,因此我似乎找不到合适的alpha半径,因为即使是半径等于1个像素的圆,alpha曝光。

任何想法如何存档的目标,建设一个凹船体将不胜感激!可能是我走错了方向,需要看看位图矢量化算法?

共有2个答案

张璞
2023-03-14

你可以阅读如何实现凹船体算法在这篇文章。基本思想是建立凸包和弯曲(凹入)边缘向内。这个算法有JavaScript实现:hull.js.

阎功
2023-03-14

Alpha形状是通过查找一组点的delaunay三角剖分,然后删除超过Alpha的边来定义的。你需要delaunay三角剖分,但不需要圆。它也适用于线条。要使用JS计算形状,可以使用TopoJSON或尝试以下答案:从Delaunay三角剖分计算alpha形状的边界多边形。你也可以试试我的php软件包http://concavehull.codeplex.com/.

 类似资料:
  • 凹凸图表用于使用其中一个度量值比较两个维度。它探讨了时间维度或地点维度或任何其他相关维度的价值等级变化。 凹凸图表可以采用零维度或多个度量的两个维度。 例如,如果要查找产品的“发货模式(Ship Mode)”与“子类别(Sub-Category)”之间的差异,请考虑数据源,例如样本超市(sample-superstore)。 第1步:将维度子类别(Sub-Category)拖到列架。 第2步:将维

  • 我需要帮助来识别边界,并将图像与原始图像进行比较。我需要指导如何我可以实现这通过处理或matlab或任何初学者。例如,请看下面的图像。 原始图像:

  • 问题内容: 而闭合多边形的坐标是 . 我要区域边界 通过使用opencv裁剪的凹多边形。我找了其他类似的 但我没能找到正确的答案。所以我才这么问? 你能帮助我吗。 任何帮助都将不胜感激。!!! 问题答案: 步骤 使用多边形点查找区域 使用多边形点创建遮罩 做口罩修剪 如果需要,添加白色背景 代码:

  • 我想知道如何使用OpenCV在我的摄像机上检测图像。该图像可以是500个图像中的一个。 我此刻正在做的事: 我想要检测的图像是2-5KB小的。很少有人在上面发短信,但其他的只是一些迹象。这里有一个例子: 你们知道我怎么做吗?

  • 我面临的问题是,在使用Gallery Intent从Gallery中选择图像时,虽然图像存储在Firebase存储中,但不显示在ImageView中。相反,占位符消失,什么也看不见。另外,我对Android和Firebase还不熟悉。 附上相同的截图。 上传前 上传后 以下是我的代码:

  • 我已经了解了如何使用PIL检测图像中的边缘(图像大部分是白色背景和黑色绘图标记)。如何检测包含这些边的矩形,以便裁剪图像。 例如,我想裁剪如下内容: 成: 或者这个: 成: 我熟悉PIL中的裁剪,但不知道如何围绕对象自动居中。 我已通过执行以下操作来检测边缘: 如何得到包含所有这些边的矩形?