我需要cv::FindContours()
在程序中使用,我必须知道其背后的算法。
openCV 使用什么算法查找轮廓?
它是如何工作的?
如果您阅读文档,则提到此函数实现以下算法:
Suzuki,S.和Abe,K.,通过边界跟随对数字化二进制图像进行拓扑结构分析。CVGIP 30 1,pp 32-46(1985)
如果您想了解它是如何实现的,OpenCV是开源的,只需阅读以下代码即可:https
:
//github.com/opencv/opencv/blob/master/modules/imgproc/src/contours.cpp#L1655
该问题 的答案之一是所涉论文
的链接
,该链接已失效且该论文位于付费墙后面,也许Google可以帮助您找到免费副本。
我正在开发一个程序,提取拼图上的贴纸,然后再找到它们的RGB。目前,我正处于要删除任何非“方形”轮廓的位置。我想知道我怎么能做到这一点。 我所做的就是加载图像,使其变灰,模糊,精明的边缘检测,放大它,找到轮廓并绘制它们。 有没有一种方法可以让我在轮廓周围画出而不是填充它们?并删除周围大小不大致相同或几乎有90度角的轮廓? 这是初始图像: 以下是绘制轮廓的图像:
我想,我很理解函数“cv2.FindOntours(图像、模式、方法)。但我在opencv的一个文档中得到了这个东西轮廓,层次=cv2.FindOntours(thresh,2,1)。我不明白这里2,1的含义以及为什么使用它们。请有人解释一下。
我试图找到使用opencv findcontour的轮廓,但一些轮廓丢失了一个相当简单的图像。图像是在create_mat()函数中创建的,在rbt中使用findcontour。我曾尝试改变模式findcontour使用:CV_RETR_EXTERNAL,CV_RETR_LIST...我都试过了,改变方法:CV_CHAIN_APPROX_NONE...... opencv版本是3.3 我也尝试过先
本文向大家介绍如何使用Java OpenCV库查找图像轮廓?,包括了如何使用Java OpenCV库查找图像轮廓?的使用技巧和注意事项,需要的朋友参考一下 轮廓线不过是连接沿着特定形状的边界的所有点的线。使用这个你可以- 查找对象的形状。 计算对象的面积。 检测物体。 识别对象。 您可以使用findContours()方法找到图像中各种形状的轮廓,对象。此方法接受以下参数- 二进制图像。 类型为M
目标 了解轮廓是什么。 学习查找轮廓,绘制轮廓等。 你将看到以下功能:cv.findContours(),cv.drawContours() 什么是轮廓? 轮廓可以简单地解释为连接具有相同颜色或强度的所有连续点(沿边界)的曲线。轮廓是用于形状分析以及对象检测和识别的有用工具。 为了获得更高的准确性,请使用二进制图像。因此,在找到轮廓之前,请应用阈值或canny边缘检测。 从OpenCV 3.2开始
我有一个边缘被坎尼探测到。我想提取边缘的轮廓。 我已经检查了下面的帖子。OpenCV转换Canny边缘到轮廓。 但是它没有处理复杂的形状。例如,带矩形的圆或带线的圆。 cv::findContours()函数有两个问题。1.返回非闭合边的闭合轮廓,但我需要非闭合轮廓2。为闭合边返回2个闭合轮廓(可能其中一个轮廓用于边,另一个用于边的内侧,但我想要两个轮廓中的一个。 有没有办法解决这个问题?谢谢。
我正在使用openCV检测图像中的矩形。在许多例子中,我使用阈值findContour约PolyDP。 如下图所示,我的问题是findContours找到的轮廓无法继续,因此在approxPolyDP之后,我无法获得矩形。。。 那么,你知道如何解决这个问题吗?谢谢你。:) 另一个问题:为什么轮廓是灰色的?在阈值之后,应该只有白色和黑色,不是吗? 轮廓 经批准
我有一个OpenCV应用程序,它来自一个办公室内部(很多细节)的网络摄像头流,在那里我必须找到一个人工标记。标记是白色背景上的黑色正方形。我使用Canny找到边缘和cvFindContours进行轮廓绘制,然后approxPolyDP和co.进行过滤和查找候选对象,然后使用局部直方图进行进一步过滤,bla bla bla bla。。。 这或多或少是有效的,但不是我想要的。FindContours总