问题标签 [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 - 如何提高目标检测?
我想改进我的专为对象检测而设计的项目。
首先,为了得到我使用的实际结果absdiff
,接下来我在下面的代码中使用以下操作:
我的最后一次手术是findContours(canny_output, *contours, *hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
这是我使用accumulate
函数(20帧)得到的每个函数和前景后的结果:
前景:http: //j71i.imgup.net/foregroundc3dc.PNG
减法: http: //p81i.imgup.net/subtractio2866.PNG
索贝尔: http: //g51i.imgup.net/sobela1fb.PNG
阈值:http: //p46i.imgup.net/treshold14c9.PNG
扩张、侵蚀和 Canny:
http://q68i.imgup.net/canny2e1a.PNG
findContours:http: //v76i.imgup.net/contours6845.PNG
背景也是从accumulate
函数中获得的。
你能帮我获得更好的角落或轮廓检测吗?我需要它,以像素为单位获取对象大小。
提前致谢!
c++ - OpenCV 3.0 主动轮廓(蛇)算法
当前情况:我想检测图像内的矩形(或正方形),其中这些矩形的轮廓不一致。就像棋盘,外轮廓有整体。
可能的解决方案:我正在尝试实现一个主动轮廓算法,它应该可以帮助我检测物体的外部轮廓。我知道对象之外的一些点,只要对象适合它,它们就可以用来缩小和适合这些点。
搜索:找到了一个老openCV版本的cvSnakeImage函数,没有维护,不应该再用了。我找到了一个活动轮廓 C++ 实现,它也使用旧的 openCV 和 boost 库。我已经尝试过,但无法构建代码。HiDiYANG/ActiveContour
问题: OpenCV 中是否有当前可用的主动轮廓算法实现?是否有可用的最佳实施,我应该花时间了解实施?
示例图像: 我的第一张图像带有灰色边框上的点,并且想要获得红色矩形(第二张图像)。
python - 提高 OpenCV Python 中 findContour 的准确性
我正在尝试为下面显示的每个“斑点”设置最小边界框。作为图像处理管道的一部分,我使用 findContours 检测数据中的轮廓,然后在给定一组已发现轮廓的情况下绘制一个最小边界框。
最小边界框不是很准确——一些特征明显遗漏,而另一些特征未能完全“封装”一个完全连接的特征(而是被分割成几个小的最小边界框)。我玩过检索模式(如下所示的 RETR_TREE)和轮廓近似方法(如下所示的 CHAIN_APPROX_TC89_L1),但找不到我真正喜欢的东西。有人可以建议一个更强大的策略来使用 OpenCV Python 更准确地捕获这些轮廓吗?
** 编辑:根据 Sturkman 的建议,绘制所有可能的轮廓似乎涵盖了所有视觉可检测的特征。
python - 图像中检测到的矩形的旋转
我需要从图像中提取检测到的矩形。矩形以未知的任意角度旋转。我看过这篇文章:如何拉直旋转的矩形
但是有两个问题:
- 如何计算“theta”,这在数学上是可以解决的。
- 本文中的代码片段仅适用于
cv
notcv2
。
有人有比这篇文章更好的解决方案吗?完全开发的解决方案cv2
我使用了 RotateRect 函数。在这两种情况下,我都检测到了矩形并绘制了它们。问题是角度。在这两种情况下,天使都被检测为阴性。至少其中一个应该是积极的。这就是为什么我不能根据链接正确旋转它们的原因。请看一下我附在问题上的照片。
c++ - 从图像中减去除面积最大的轮廓之外的所有轮廓
找到最大轮廓的索引后该怎么办?如何删除所有其他轮廓及其内部区域?图像是二进制的(cv::Mat thr)。只是带有白色区域的黑色背景。谢谢。
python - Draw Contours in opencv around recognized polygon
I am working on OpenCV-Python. I have a image like this(bellow image,but without light green lines) from live feed by webcam.I have found corners coordinates,
of polygon. How to draw a line around recognized polygon like light green lines shown on image?
c - 查找从轮廓检测到的圆的厚度?
我正在尝试检测从下面的代码中收到的圆圈的厚度,但我无法这样做。
我的基本想法是穿过圆圈,如果任何一点的厚度小于另一边,这意味着它是一个有缺陷的圆圈。
我在谷歌上找到了这个,但我不知道如何把它放在代码中:
http://answers.opencv.org/question/28180/measuring-edge-thickness-using-opencv
代码:
在此之后,我知道我需要找到轮廓,但是我怎样才能得到圆的厚度并穿过圆来得到有缺陷的呢?我不想获得像素数并检测有缺陷的圆圈......
当我运行上面的代码时,我得到了这个图像
python - 如何在opencv中获取旋转椭圆长轴的开始和结束坐标(x,y)?
我正在执行对象的运动跟踪,并且我正在尝试识别对象的正面和背面。物体是不对称的,这意味着轮廓的质心更靠近前面而不是后面。使用此信息,我将按以下方式处理此问题:
绘制物体的轮廓
寻找质心
绘制边界椭圆
计算长轴长度如下(如图所示)
计算主轴的开始和结束x,y坐标
/li>确定哪些点更接近轮廓的质心
/li>
我遇到的问题是,虽然我得到椭圆的“前端”大部分时间都是正确的,但偶尔点有点偏离。据我观察,这似乎正在发生,x 值是正确的,但 y 值不同(实际上,我认为这表示垂直于我的椭圆的长轴)。我不确定这是否是 opencv 计算角度的问题,或者(很可能)我的计算不正确。我确实意识到这是一个复杂的例子,希望我的数字有所帮助!
编辑:当我得到错误的点时,它不是来自垂直椭圆,而是来自我的椭圆的镜像。它也发生在 x 值上,而不仅仅是 y。
在遵循下面 ssm 的建议之后,我大部分时间都得到了想要的点。这点偶尔还是会出错,但很快就会“弹回”到位。例如,这是发生这种情况时的几帧:
顺便说一句,上面的图像是在使用以下代码“校正”角度之后:
如果我不进行更正,我会在其他时间得到错误的点,如下所示相同帧。
所以看起来我对某些角度进行了角度校正而其他角度没有校正。如何在这两种情况下获得所有正确的分数?
(椭圆内的白点是轮廓的质心,而椭圆上或椭圆外的点是我得到的点)