OpenCV - C ++ - 二元对象的轴对齐边界框

时间:2013-02-21 22:27:40

标签: c++ object ubuntu opencv detection

所以我的图像带有橙色交通锥

Original Image

我已经过滤掉了我不想要的所有颜色

Filtered Image

现在我要做的是在圆锥周围画一个方框。我想通过确定锥体的最大上限和下限以及锥体的最大左右边界来做到这一点。基本上,最高白色像素,最低白色像素,最左边白色像素和最右边白色像素的位置。

我知道如何绘制线条,但我不知道如何找到圆锥的边界。

我的想法是在锥体周围找到一个方框,以便我可以确定锥体的质心。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

假设图像加载到数组中......您可以使用以下算法。

long top, bottom, right, left;
bottom = right = -1;
top = maxrows;
left = maxcolumns;

for(long row = 0; row < maxrows; row++)
{
    for(long column = 0; column < maxcolumns; column++)
    {
        if(true == IsPixelWhite(image[row][column])
        {
        if(row > bottom)  bottom = row;
        if(column > right) right = column;
        if(row < top)  top = row;
        if(column < left) left = column;
        }
    }
}