问题标签 [contour]

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 投票
1 回答
4004 浏览

math - 绘制二维隐式标量场的等值线

我有一个在 2D 中定义的隐式标量场,对于 2D 中的每个点,我都可以让它计算一个精确的标量值,但它的计算有点复杂。
我想画一条该表面的等值线,比如“0”值的线。函数本身是连续的,但“0”等值线可以有多个连续实例,不能保证所有实例都连接。
计算每个像素的值不是一种选择,因为这会花费太多时间 - 大约几秒钟,并且需要尽可能实时。

我目前使用的是空间的递归划分,可以被认为是一种四叉树。我对空间进行了一个初始的、非常粗略的采样,如果我找到一个包含从正值到负值的过渡的正方形,我将它递归地划分为 4 个较小的正方形并再次检查,在像素级别停止。通过在其 4 个角采样一个正方形来检测正负转换。这工作得相当好,除非它没有。绘制的等值线有时会被剪切,因为对于发生在边缘的小区域且不跨越正方形角的过渡,过渡检测失败。

在此设置中是否有更好的方法来绘制等线图?

0 投票
3 回答
13757 浏览

opencv - OpenCv Blob/轮廓标记

嗨,我已经为此工作了一段时间,但还没有好的解决方案。

我正在逐帧阅读视频并使用背景减法来识别存在移动的区域并使用 cvFindContours() 来获取移动对象的矩形边界。

假设程序保持简单,则只能有 2 个人。

这些物体以它们可以重叠的方式移动,并以一定的间隔转动和移开。

我怎样才能正确标记这个人 x 2。

cvFindContour 可以随机返回边界。对于 Frame1,Frame2,Frame3....FrameN

我最初可以比较矩形边界质心以正确标记人类。一旦人类重叠并离开,这种方法就会失败。

我试图跟踪原始 obj 的像素颜色(但是人类非常相似,并且某些区域具有相似的颜色,例如手、腿、头发),因此不够好。

我正在考虑使用 Image Statistic,例如:

CountNonZero(), SumPixels() Mean() Mean_StdDev () MinMaxLoc () Norm ()

以唯一区分这两个对象。我相信这将是一个更好的方法。

0 投票
3 回答
1398 浏览

algorithm - 构造多边形的轮廓(特别是三角剖分)

我将如何构建仅由三角形形成的二维多边形的轮廓,它可以有孔,外部轮廓可以是凹/凸,孔也可以是凹/凸。

我在这里阅读的内容来看,这似乎正是三角测量问题的反面。你知道任何处理这类问题的文章吗?

八叉树/四叉树与此相关吗?

0 投票
4 回答
9559 浏览

c++ - 从规则间隔的数据生成等高线

我目前正在从事数据可视化项目。我的目标是从网格数据中生成等高线,也就是等值线。数据可以是温度、天气数据或任何其他类型的环境参数,但唯一的条件是它必须是有规律的间隔。我在互联网上搜索,但是我找不到从网格生成轮廓线的好算法、伪代码或源代码。有人知道从网格数据生成轮廓线的库、源代码或算法吗?如果您的建议具有良好的运行时性能,那就太好了,我不想让我的用户等这么久:)

编辑:感谢您的回复,但等值线有一些限制,例如它们不应相交,因此仅生成贝塞尔曲线并不能实现我的目标。

0 投票
4 回答
4153 浏览

algorithm - 计算 3D 高度图的轮廓?

我正在寻找一个函数或示例来生成表示高度图中特定高度的轮廓的线条列表。

例如,

其中 Heights 是一个 512x512 的浮点值数组,HeightValue 是应绘制轮廓的高度。高度可能包含该特定高度的多条线(例如马鞍或岛链)

有没有人有或知道在哪里可以得到一个算法来生成这个?

0 投票
2 回答
611 浏览

image-processing - 形状描述符

我有一个二进制蒙版的图像,我想表征蒙版中黑色区域的轮廓,我发现了几个功能来检测两个区域之间的边界,但只是作为一个新图像,但我想要的是描述这个边界,不是一个新的图像。Java高级成像或其他库中是否有任何功能可以应用于蒙版以检索黑色区域的几何形状的表示?表示可以是形状的矢量化、多边形近似、链码……我所发现的只是该问题的理论解决方案。

0 投票
2 回答
16315 浏览

python - 计算轮廓/区域的中心

我正在研究一个图像处理链,它通过颜色和轮廓分离单个对象,然后计算该对象的 y 位置。

如何使用 OpenCV 计算轮廓或区域的中心?

Opencv 链接:

0 投票
1 回答
1681 浏览

python - python中的Opencv排序序列

我正在使用 Python OpenCV 绑定来查找图像中的轮廓。我知道寻找对这个序列进行排序的可能性。

由于 OpenCV 生成的链表结构,列表排序的常用 python 方法似乎在这里不适用。

你知道在python中按大小(面积/边界矩形)对轮廓进行排序的好方法吗?是否可以提供一些示例代码?

0 投票
3 回答
2667 浏览

python - 二进制二维矩阵的python轮廓

我想计算二进制 NxM 矩阵中形状周围的凸包。凸包算法需要一个坐标列表,所以我使用 numpy.argwhere(im) 来获得所有形状点坐标。然而,这些点中的大多数对凸包没有贡献(它们位于形状的内部)。因为凸包计算时间至少与它作为输入的点数成正比,所以我设计了一个想法来预先过滤过多的无用点,只通过那些跨越轮廓的点。这个想法很简单,对于二进制 NxM 矩阵中的每一行,我只取最小和最大索引。例如:

然后大纲应该读取(在元组中或作为 5x2 numpy 数组,我不介意):

围绕这个形状(im)的任何凸包都必须是这些点的子集(轮廓)。换句话说,如果“somefunc()”在过滤内部点方面是有效的,那么它可以节省凸包计算的时间。

我有执行上述技巧的代码,但我希望有人有更聪明(阅读速度更快)的方法,因为我需要多次运行它。我的代码是:

我的另一个想法是使用 Python 的 reduce(),所以我只需要遍历坐标列表一次。但我很难找到一个好的归约函数。

任何帮助将不胜感激!

编辑

与此同时,我找到了一种更快的方法,可以im直接从outline. 至少对于大图像,这要快得多。在明显没有外部解决方案的情况下,我将其定位为该问题的解决方案。

不过,如果有人知道更快的方法,请说出来:)

0 投票
5 回答
4596 浏览

graphics - 如何生成等高线图?

如何生成这样的等高线图: contour http://www.fz-juelich.de/vislab/software/gsharp/Gsharp/userguide/interpolate/ex6.gif

如果这些点在常规网格上,这很容易,但如果它们不是,就像在我的示例中一样?是否有一个相当简单的算法来确定每个像素的颜色?