问题标签 [concave-hull]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1239 浏览

java - OpenCV如何找到点列表的轮廓(凹壳) - Java

我是openCV的新手,发现做一些基本的东西真的很困难,所以我非常感谢你的帮助。

我的问题是这样的:

我有一个由地理坐标(纬度,经度)组成的点列表,格式为(49.074454444, 22.72638888889)。这些点形成一个多边形,但是一个凹面,我想要实现的是找到这个多边形的凹壳。

我的想法是使用openCV通过绘制这些点来实现它,而不是使用一些形态学变换作为膨胀和侵蚀,以便这些点形成一个固体区域,而不是使用openCV提供的findContours方法。

我的第一个问题是我的方法对吗?我的意思是这样可以实现吗?

现在我的主要问题是什么。首先,我所有的点仅相差一些第 6 位,我不知道如何正确地将它们“插入”到 Mat 中,因为我相信 Mat 由像素组成,所以行和列(整数)。

我试图做这样的事情:

但实际上在绘制轮廓后它不起作用,只有一个点被标记为 255,它的像素 (49,23) 才有意义。

我的最终目标是取回我的区域船体顶点的地理坐标。

我真的很感激任何帮助。

0 投票
0 回答
332 浏览

python - 从凹多边形中获取排序的边缘点

我有一组形成凹多边形的点。我对它们进行了 Delaunay 三角测量,得到了这个:Delaunay。然后我使用该descartes.PolygonPatch函数给我想要的凹多边形:Polygon。现在我只想恢复在这个补丁中使用的点,并按顺序排序。关于如何做到这一点的任何建议?

0 投票
1 回答
173 浏览

algorithm - 如何在图像中找到多个凹凸形状

所附图像是游戏的“可行走空间”蒙版,由玩家绘制,因此可以是任何东西。我需要创建碰撞器来防止玩家走到面具的蓝色部分(水)。游戏本身在 3D 空间中,蒙版用于地形纹理(虚幻引擎 4)。

我现在所做的是将纹理的大小从 2048x2048 减小到 256x256,并在 3D 空间中为蒙版中的每个蓝色像素创建一个碰撞器。这适用于少量蓝色像素,但如果有很多蓝色像素(水),它就不会很好/根本无法正常工作。会有太多的对撞机在飞行中产生。

所以我想唯一的其他选择是找到构成图像中任意数量凹形边界的点。我将使用它创建墙壁对撞机。

希望这是有道理的。很感谢任何形式的帮助。

谢谢在此处输入图像描述

0 投票
1 回答
932 浏览

r - 确定哪些点位于 R 中不规则形状的数据足迹之外?

我在“足迹”形状高度不规则的区域中有一系列点:

LE82

我想确定足迹顶点内的所有坐标。最终目标是确定哪些数据点位于此足迹之外。

有没有人有一种有效的方法来做到这一点?


我最好的解决方法是根据绿色区域的顶点绘制一个多边形,然后使用所述多边形的坐标来确定“离群点”(不过,我还不确定如何做到这一点——一次一步!)。

然而,当我尝试创建一个凸包时,由于我的绿色空间的不规则形状,它显然会产生问题。[有人知道创建凹形船体的方法吗?]

或者,有没有办法使用“单击图形”类型的方法手动绘制多边形?


...再次,如果您对我的问题有比使用多边形更好的解决方案,请务必提出该解决方案!

0 投票
4 回答
4171 浏览

python - 估计由一组点生成的图像区域(Alpha 形状??)

我在显示 2D 图像 的示例 ASCII 文件中有一组点。在此处输入图像描述 我想估计这些点填充的总面积。该平面内的某些地方没有被任何点填充,因为这些区域已被屏蔽。我猜想估计面积可能是应用凹壳alpha 形状。我尝试了这种方法来找到一个合适的alpha值,从而估计面积。

我得到了这个结果,但我希望这种方法可以检测到中间的洞。 在此处输入图像描述

更新
这是我的真实数据的样子: 在此处输入图像描述

我的问题是估计上述形状面积的最佳方法是什么?我无法弄清楚这段代码不能正常工作出了什么问题?!!任何帮助将不胜感激。

0 投票
0 回答
661 浏览

c# - 找到一组点的凹壳,使得每个点都在边界内

所以我试图从一组随机生成的二维顶点中制作复杂的多边形。我想允许凹多边形存在,并确保集合中的每个顶点都包含在边界中(因此算法必须能够处理凸和凹壳),并确保由创建的线边界永不相交。每个版本的凹壳生成算法都假设可以接受不同程度的凹度,并且某些点可能不是边界的一部分。

我觉得这可能是一个比我认为的简单得多的问题,但我不知道如何确保我可以以这样一种方式对顶点进行排序,即在列表中具有相邻索引的顶点之间绘制一条线使得多边形符合符合那些标准。对于凸包,很容易找到多边形的质心并按顶点相对于它的极角对顶点进行排序,但我目前不知道凹的等效想法。

0 投票
2 回答
5490 浏览

algorithm - 如何在python中使用库三角形中的三角测量

我想检测我的一组点的边界。我从 scipy spatial 尝试了 Delaunay 三角剖分,但我得到了这个:在此处输入图像描述

当我从这些三角形执行 alpha 形状时,我无法获得点集的边界。所以我认为我应该使用约束德劳内三角剖分。我选择三角形库来执行此操作。但问题是我不知道向函数 triangle.triangulate(tri, opts='') 提供什么。我将我更改的所有点集输入字典,但它返回我的点集。所以任何人都可以帮助我使用此功能或其他替代方法来执行轮廓检测?谢谢

0 投票
1 回答
294 浏览

cluster-analysis - 识别高维点的凹壳

我有一组更高维度(30d 到 100d)的点(簇)。我需要以有效的方式识别这些点的凹壳。有没有办法得到这些点的精确凹壳或至少近似凹壳?此外,如果我们有一组点被识别为边界点,有没有办法验证这些点是否真的是边界点?

0 投票
1 回答
314 浏览

concave-hull - 如何使用 OpenTripPlanner API 获得正确的凹形船体?

以下代码没有给我预期的结果。我希望将所有点作为多边形的节点,并且多边形包含所有点。如何正确使用 API?此外,如果我将阈值设置为小于 1,程序就会进入某种无限循环。

结果:

0 投票
2 回答
331 浏览

python - Python - 互补齿轮形状

我试图找到任何输入多边形形状的互补旋转“齿轮”形状。例如,这个多边形被旋转以使互补齿轮变得明显。两种形状都可以不受干扰地旋转。

我在定义第二个多边形时遇到问题,它是白色内部区域的边缘。我能想到的一种方法是沿输入形状的圆周“采样”输入形状,然后像以前一样旋转以生成点云。可以使用凹壳算法(Alpha 形状)来获得边缘。

虽然这可行,但我觉得必须有一个更优雅的解决方案来解决这个问题。

谢谢

齿轮 多边形及其旋转图像

采样形状 采样的多边形和生成的点云

缩放边缘 边缘特写