我一直在尝试使用OpenCV的
情况A:形状位于图像边缘 (这不是实际输入图像,而是更简单的输入图像,以说明该问题。)
情况B:背景包围形状
以下是我使用的主要函数:
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() );
编辑:跳过边缘检测可以得到我需要的轮廓,但我需要尽可能接近最佳的轮廓近似。
提前致谢。