问题标签 [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.
opencv - OpenCV - 检测带有障碍物的粗糙手绘圆圈
一段时间以来,我一直在尝试从文档中提取手绘圆圈,但我所做的每一次尝试都没有达到我需要的一致性水平。
我一直遇到的问题是,当 2 个“圆圈”太近时,它们会变成一个轮廓,破坏了我检测轮廓是否弯曲的尝试。我确信一定有更好的方法来提取这些圆圈,但它们的不完美和不一致真的让我很困惑。
我尝试了许多其他方法来挑选曲线,其中最准确的是:
与其使用膨胀来弥合分割轮廓之间的间隙,不如找到端点并尝试继续曲线,直到它碰到另一个轮廓。
问题:我无法有效找到轮廓的转折点,否则这将是我的首选方法
如果这个问题被认为“过于具体”,我深表歉意,但我觉得像这样的计算机视觉东西总是可以应用于其他地方。
提前感谢您提供的所有帮助,我快到了尽头。
编辑:我刚刚意识到这张专辑工作不正常,但我认为现在应该修复它。
python-2.7 - Python OpenCv2,计算彩色物体的轮廓
我希望能够计算检测到的对象中的像素数。我正在使用 cv2.threshold 函数。这是一些 sudo 代码。
从现在开始,我不知道如何计算对象的像素。如何找到二值图像的轮廓?我想有可能在 Thresh/ 蒙版上 cv2.bitwise_and 全黑图像,但这似乎可能很慢,而且我不知道如何创建这样的全黑和白图像。
那么 TD:LR,你如何计算二进制图像中物体的像素数?
注意:我实际上只是在最大对象之后,只需要像素数,而不是图像。
编辑:不尝试计算检测到的像素总数,我已经这样做了。想要从具有最大数量的对象中检测到的像素数。
opencv - 如何加快或替换代码以组合闭合轮廓?
我的问题是以合理的速度组合附近的轮廓。
我从一个包含大型闭合形状图像的 CV8U 单通道灰度垫开始。在这个形状的内侧发芽的是一条短曲线。我的任务是仅将曲线变成点向量。
所以我阈值我的垫子并打电话给 FindContours。结果是许多轮廓的向量。有些是噪音,包括我没能完全掩盖的大块形状。但有几个是我曲线的一部分。问题是曲线 - 在原始图像中是连续的 - 被 FindContours 分割成许多轮廓。为了解决这个问题,我找到了最大的轮廓,它始终是我的曲线的一部分,并搜索其他附近的轮廓。如果我找到任何东西,我将它们连接在一起,然后重复。
最后,我有一个包含我的曲线的点向量。有用。但是所有的循环和迭代都让它变得非常慢。
什么替代方法可以保留输出(代表我的曲线的点向量)但运行速度快?
node.js - OpenCV 与 NodeJS 绑定安装
我想做一个直播人脸检测项目 OpenCV & NodeJS 绑定。我的目标是最终在 Heroku 上使用 NodeJS 后端和 HTML 前端部署它。我正在关注
https://www.npmjs.com/package/opencv
我正在遵循 Windows 的安装过程。现在,我想测试我的所有安装是否已完成,上面的网站上说
但是,我不知道该使用什么命令。我已经克隆了 git repo,对于使用什么命令运行哪个文件,我看起来很困惑。例如,是否可以
此外,在那个网站上,它说构建失败,只有 45% 的覆盖率。这是否意味着它不起作用?
opencv - 在白色背景上查找形状。细化线条
我有以下图像作为测试图像:
我试图找到图像(和其他图像)上的形状。我现在的方法如下:
- 具有 3x3 内核的高斯模糊
- 使用列表进行精明边缘检测(获取所有形状)
- Morphology 与 MorphOp.Close 关闭边缘
- FindContours 查找轮廓
- 每个轮廓的迭代:
- 查找 ApproxPolyDP
- 找到 ConvexHull
- 如果船体尺寸 < 2、大约面积 < 200 或船体尺寸 > 50000 或弧长大约 < 100,则丢弃
- 绘制凸包
这几乎是完美的,但请注意,这些线条被视为轮廓事件->供应商和事件->文档)。查看边缘信息时,很明显为什么会这样:
线条被检测为轮廓。我如何准备/找到形状以便检测不到线条?我虽然有一些细化算法,但由于我也在处理现实生活中的图像,所以很难找到一个有效的阈值。这是一个现实生活图像的示例,其中很难进行细化,因为细化通常要求图像是黑白单色的。
你会怎么做?有什么方法可以确定轮廓/凸包是线、矩形还是类似的东西?
c++ - OpenCV:如何在 C++ 中找到轮廓内的像素
假设如果我们正在处理图像,有没有办法访问轮廓内的像素?
我已经使用函数 findContours() 找到了轮廓,甚至找到了时刻,但我找不到轮廓内的像素。
欢迎任何建议!
谢谢!
java - OpenCV 检测最大矩形会产生令人费解的结果
我的目标是检测图像中最大的矩形,无论它是否倾斜。经过一些研究和谷歌搜索,我想出了一个理论上应该可以工作的代码,但是在一半的情况下,我看到了令人费解的结果。
我在 Android 上使用了 OpenCV,代码如下:
在某些情况下,它的效果非常好,如图所示(请参见显示器挡板和屏幕之间的白线.. 抱歉颜色):
有效示例:
但是,在此图像中,以及大多数屏幕为灰色的图像中,它会产生疯狂的结果。
不起作用的示例:
python - 使用opencv python从图像中检测和裁剪字符
我有一个项目,我必须从图像中检测孟加拉语数字。我决定做一个实验,比如带空格和不带空格的数字。我的 python 程序可以从带有空格的图像中检测到所有数字。
当我给出没有空格的图像时出现问题。它不能像上一个那样顺利地减少数字。
这是我的代码
起初我使用扩张来寻找轮廓,但它不适用于没有空间图像的数字。然后我直接使用 thresh 输出,之后我得到了大部分数字,但我无法完美地切割它们,因为轮廓区域检测数字与其他数字的某些部分。虽然它在第二张图像中没有空间,但仍然有 2 个数字没有相互接触。那么为什么会有这样的输出呢?
带空间:
没有空格: