【发布时间】:2012-04-13 01:04:48
【问题描述】:
我一直在尝试使用 OpenCV 的 findContour(我想使用 C++ 语法)在非常简单的背景中找到单个形状的轮廓。然而,它不断地使其轮廓成为轮廓,而不是形状本身。我认为这是因为 Canny 产生的白色边缘不会使形状闭合。
案例 A:形状位于图像的边缘 (这不是实际的输入图像,而是更简单的输入图像来说明这个问题。)
案例 B:背景围绕形状
我使用的主要功能有:
findContours( grayImage, contours, hierarchy, RETR_LIST,CHAIN_APPROX_SIMPLE);
approxPolyDP(Mat(contours.at(largestContourIndex)),poly,3,true);
drawContours(output, contours, largestContourIndex, RGB(250,0,100), -1, 8, hierarchy, 0, Point() );
编辑:跳过边缘检测给出了我需要的轮廓,但我需要有我能得到的最佳轮廓近似值。
提前致谢。
【问题讨论】:
-
我看到你在我回答后编辑了你的帖子。如果您对我的回答发表评论,说明天气有帮助,如果没有,为什么该方法不起作用(即您尝试时发生了什么)
-
我实际上已经尝试过您的方法和其他几种方法。我只是在犹豫是否让这个问题变得复杂并且令人沮丧。很快就会做出回复和编辑。感谢您的帮助。
标签: c++ image-processing opencv contour