绘制轮廓后查找轮廓

时间:2014-12-05 12:41:31

标签: opencv

我使用了包含4个圆圈的互联网随机图片。 [但是,opencv分段代码检测307个轮廓。但是,我想只检测4个圆圈。所以我试图模糊图像以消除噪音。但是,仍然没有帮助。 然后我使用了以下代码。

Mat ContourOutline = Mat::zeros(cannyEdges.size(), CV_8UC3);
    for (int i = 0; i < contours.size(); i++)
    {
        cout << "Area of contour " << i << "=" << contourArea(contours[i])<<"\n";
        Scalar color = Scalar(0,0,255);
        drawContours(ContourOutline, contours, i, color, 2, 8, hierarchy, 0, Point());
    }

这产生了一个完美的图像。![绘制4个圆圈] [3]现在,我想在这个图像上运行查找轮廓代码。但是,Visual Studio会抛出一个未处理的异常。我该怎么做来检测这四个圆圈?

1 个答案:

答案 0 :(得分:0)

您创建ContourOutline作为CV_8UC3元素矩阵,其中(可能)表示是BGR彩色图像,但findContours使用{{1}类型的二进制图像作为输入。

试试这段代码:

CV_8UC1