前景对象上的边界矩形用于分类

时间:2012-11-06 23:43:44

标签: image-processing opencv computer-vision

我有以下程序在前景对象上绘制边界框。 通过测量矩形一侧的长度,这个边界框将有助于按长度分类对象。

现在,这只在一个对象上绘制一个矩形实例,我想让它同时绘制所有这些对象。但我被卡住了。需要指导或协助。请参阅附图。 Foreground Mask![Original Image with Bounding Box drawn

Rect boundingRect(InputArray contours);
    // Finds the contour with the largest area
    int area = 200;
    int idx = 0;
    for(int i=0; i<contours.size() ;i++) 
    {
        if(area < contours[i].size())
            idx = i; 
    }

    //cout<< contours.size();
    // Calculates the bounding rect of the largest area contour
    Rect rect = boundingRect(contours[idx]);
    Point pt1, pt2;
    pt1.x = rect.x;
    pt1.y = rect.y;
    pt2.x = rect.x + rect.width;
    pt2.y = rect.y + rect.height;
    cout<< idx<< "\t \t";
    // Draws the rect in the original image and show it
    rectangle(frame_Original, pt1, pt2, CV_RGB(0,0,255), 2);
    //cout << pt1; cout << pt2;

1 个答案:

答案 0 :(得分:1)

如果要绘制大小大于countours的{​​{1}}中的所有矩形,则应保存索引,然后使用循环绘制所有矩形。

area