问题标签 [opencv-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.
android - 如何使用 createBackgroundSubtractorMOG2
我正在使用 OpenCV4Android 3.1.0 版,我想删除从 Android 相机拍摄的每一帧的背景。我提到了一些帖子,我的理解是,因为应该从我应该使用的非静态背景“Android 相机”中删除背景createBackgroundSubtractorMOG2
根据一个例子,我正在使用createBackgroundSubtractorMOG2
如下代码所示。但是在运行时,无论从相机检索到的帧中的背景如何变化,我都会得到掩码fgmask
始终包含一个白色图像。
请让我知道如何使用createBackgroundSubtractorMOG2
代码:
python - OpenCV:在检测到的运动上绘制边界
我是 OpenCV 的新手,决定学习它,但编写了一个小程序来检测运动并在对象上绘制一个边界框。
我从一个相当简单的方法开始,它简单地计算两帧之间的差异,找到轮廓并在对象周围绘制一个简单的矩形。这在一段时间内达到了目的,但它无法在多个对象弹出时自主跟踪它们。我必须手动更改我的参数才能跟踪n个对象。
所以我决定改变我的方法,改用BackgroundSubtractorMOG
. 这种方法更适合我想要完成的工作,但我目前唯一遇到的问题是如何在应用后绘制检测到的对象的轮廓BackgroundSubtractorMOG
。我不再想要矩形,而是希望它围绕对象的边框绘制。
opencv - 如何获取轮廓的坐标
我正在使用 OpenCV4Android 2.4.11 版,并且正在检测相机检索到的帧中的任何矩形形状。如下图 1 所示,我在检测到的对象周围绘制了一个黑色轮廓,我想要做的是,获取绘制轮廓的所有坐标,该坐标仅以黑色绘制。我尝试的是,如下面的code_1所示,我得到最大轮廓和最大轮廓的索引,并将它们分别保存在“largestContour”和“largest_contour_index”中。然后,我使用
然后我将最大轮廓的点传递给 FindCorners 类,因为我想找到用黑色绘制的轮廓的特定坐标,如下所示:
以下代码行:
应该给我较小的 x 坐标、最小的 y 坐标、最大的 x 坐标和最大的 y 坐标。但是当我围绕从“this.mFindCorners.getCords();”得到的坐标画一个圆圈时 我在下面的 image_2 中得到了类似的东西,这只是 BoundingRect 的角落。
实际上我不希望 boundingRect 中的任何坐标我想访问在黑色检测到的对象周围绘制的轮廓的坐标
请让我知道如何获取轮廓本身的坐标?
代码_1:
找角:
}
图像_1:
图像_2:
更新 我不想拥有边界矩形的坐标,我想要的是黑色轮廓的确切坐标。如图 3 所示,我从代码中获得的坐标是红色和黄色圆圈所在的位置..但我正在寻找能够访问黑线“轮廓”的坐标,因此我可以在其上绘制一些圆圈,如图所示图像_3。绿色的点只是为了告诉你我想要的坐标。
图像_3:
android - OpenCV FindContours 在 android 上找不到轮廓
我正在尝试查找图像的轮廓,使用 OpenCV on android build with Xamarin(有关以下版本的详细信息)。
即使使用如下所示的伪图像,我也无法让 FindCountours 函数返回任何轮廓(列表为空)。另一个问题是层次对象中有一个轮廓。
它在 Windows 上从 Python 运行时有效。
有谁知道可能是什么原因?
版本信息:
- OpenCV-3.1.0
- 安卓 5.1 API 22
找到了解决方案: 轮廓列表必须是JavaList,即。
c++ - 轮廓的偏度
嘿,我用图像矩计算了轮廓的方向。结果,我得到了一个在 -pi 和 pi 之间定义的角度。但是这个角度在 -pi 和 pi 处具有不确定性。所以我的想法是用三阶图像时刻计算偏度,但我真的不知道该怎么做。在这里使用图像时刻跟踪对象方向,作者也是这样做的。但我不太明白他是如何计算偏度的,因为他/她使用了我不知道的 matlab 函数:-/
有人知道更多关于这个问题的信息吗?我将非常感谢您的帮助!!!!此致
python - drawContours 无法在 OpenCV 3.1.0 中创建正确的蒙版
我想使用 OpenCV 拆分图像的字符以训练 Tesseract 模型。
我正在使用3.1.0版本(因为 Macports 升级 - meh..),并且文档(用于 Python)仍然不是很清楚/记录良好。
这是我所做的:
- 二值化图像以便准备好找到轮廓
- 找到轮廓(有效 - 至少我得到非零结果)
对于每个轮廓:
- 创建一个掩码(这可能会失败 - 得到零)
- 使用蒙版从原始图像中提取部分(应该可以工作,但蒙版失败,所以这还不行)
新版本的 OpenCV 也有一些不同的语法,所以有时这让它变得更加棘手。
这是我的代码:
据我所知,蒙版应该与原始图像的大小相同。但它也应该具有相同的形状吗?例如,我的图像是 640x74,但我创建掩码矩阵的方式是 1x47360。也许这就是它失败的原因...... (但不会抛出任何错误)
任何帮助表示赞赏!
python - 如何在 SimpleCV 或 opencv 中计算边界内的标记区域
我有这张图片:
在这里,我有一个绿色背景的图像和一个用红线标记的区域。我想计算标记部分相对于图像的面积。
我正在裁剪图像以移除绿色背景并计算裁剪图像的面积。从这里我不知道如何进行。
我注意到Contour可以用于此,但问题是在这种情况下如何绘制轮廓。
我想如果我可以创建轮廓并用一些颜色填充标记区域,我可以从整个(裁剪)图像中减去它并获得两个区域。
opencv - 检测边缘(连接边缘)并找到边缘长度和连接分量回转半径
原始图像 我正在尝试检测此图像中连接边界的集群。我需要找到这些边缘的长度以及各个集群的回转半径。我正在使用 opencv 2.4.13。我使用以下代码使用轮廓检测质量簇。
问题是公共共享边的轮廓变得不同,逻辑上它们应该属于同一个集群。我给出的以下轮廓图像。 在一定长度以上提取的轮廓
我们可以看到许多具有相同共享边的轮廓被分别视为不同的轮廓。我希望它们成为相同边界集群的一部分。还建议我如何检测边界的长度和回转半径。请帮忙。