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

C++ OpenCV-C++;-二元对象的轴对齐边界框,c++,object,ubuntu,opencv,detection,C++,Object,Ubuntu,Opencv,Detection,我有一张橙色交通锥的图片 我已经过滤掉了所有我不想要的颜色 现在我要做的是在圆锥体周围画一个盒子。我想通过确定圆锥体的最大上界和下界,以及圆锥体的最大左界和右界来实现这一点。基本上,最高白像素、最低白像素、最左侧白像素和最右侧白像素的位置 我知道如何画线,但我不知道如何找到圆锥体的边界 想法是在圆锥体周围找到一个盒子,这样我就可以确定圆锥体的质心 非常感谢您的帮助。假设图像加载到数组中。。。您可以使用以下算法 long top, bottom, right, left; bottom = r

我有一张橙色交通锥的图片

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

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

我知道如何画线,但我不知道如何找到圆锥体的边界

想法是在圆锥体周围找到一个盒子,这样我就可以确定圆锥体的质心


非常感谢您的帮助。

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

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;
        }
    }
}
长顶、长底、长右、长左;
底部=右侧=-1;
top=最大行数;
左=最大列数;
对于(长行=0;行底部)底部=行;
如果(列>右)右=列;
如果(行<顶)顶=行;
如果(列<左)左=列;
}
}
}

假设图像加载到一个数组中……您可以使用以下算法

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;
        }
    }
}
长顶、长底、长右、长左;
底部=右侧=-1;
top=最大行数;
左=最大列数;
对于(长行=0;行底部)底部=行;
如果(列>右)右=列;
如果(行<顶)顶=行;
如果(列<左)左=列;
}
}
}

可能重复的可能重复的可能重复的谢谢!这真的帮助了我。我让一切都按我想要的方式工作。谢谢!这真的帮助了我。我让一切都按我想要的方式工作。