【发布时间】:2018-01-01 13:51:57
【问题描述】:
我正在使用 OpenCV 的 cv::findContours 函数来提取二进制图像中的轮廓,特别是,我正在提取轮廓的层次结构(使用 CV_RETR_CCOMP 标志)。在我进一步处理这些轮廓的某个时刻,我需要依赖这些轮廓的一致顶点方向(即逆时针与顺时针)。
当然,我可以使用轮廓区域的符号(由cv::contourArea(..., true) 计算)自己确定该方向,但我想知道这是否有必要(除此之外,它甚至不适用于具有面积为 0,即源图像中的细线)或者cv::findContours 已经保证生成的轮廓的方向一致。我确实检查了一些生成的轮廓,cv::contourArea 确实 似乎 为外部轮廓返回负值,为内部轮廓返回正值。但是,我在 OpenCV 文档中找不到任何实际的保证。
那么,是否特别保证cv::findContours 返回的轮廓始终具有一致的方向?这是否记录在任何地方?或者它是否因版本而异(我的版本是 2.4.5)?实际的paper on the algorithm referenced in the documentation 是否已经对此有所说明?或者也许对 OpenCV 的实际实现有更深入了解的人可以比接口文档多说一点?
【问题讨论】:
标签: opencv opencv-contour