小编use*_*762的帖子

OpenCV的; 对vector <Rect>进行排序并删除某些条目

我有这个问题我无法绕过头脑.我试图检测并跟踪视频中的某些内容.因此我使用的功能GaussianBlur(), threshold(), findContours(),.

findContours()给我一个轮廓矢量,后来转换成边界矩形.到现在为止还挺好.

我现在需要从具有边界矩形的向量中得到的是它们按大小排序(area)并且仅包含未被另一个矩形包围的矩形.

我试图画一个小草图以便更好地理解,点击这里查看图片.

所以我要找的是#8第一个条目,然后是#1, #3,.... 条目,#2,#4, #9, #10 and #11应删除.

我知道向量不适合排序和删除.所以我试着将矢量复制到一个列表中,如下所示:

std::list<Rect> sorted_list(boundRect_temp.begin(), boundRect_temp.end());
Run Code Online (Sandbox Code Playgroud)

但现在我无法访问区域等成员变量.问题是算法不应该太耗时,这就是为什么我在寻找一个好的解决方案.也许已经有了这个功能?

c++ sorting opencv vector

5
推荐指数
2
解决办法
4697
查看次数

检查Mat是否为黑色图像

也许一个简单的问题,但因为我是一个菜鸟我不知道如何以优雅的方式做到这一点.我正在分析视频.为此,我在帧之间采取差异.如果没有任何改变,如果我用imshow(...)显示它,结果帧将为空或黑色.我怎么知道我是否正在寻找其中一个黑色(空)帧?

我试过了:

Mat threshold_output;
...
threshold_output.empty() --> does not work
or
threshold_output == 0 --> compiler error
Run Code Online (Sandbox Code Playgroud)

也许有人可以告诉我:).

谢谢

opencv image mat

3
推荐指数
2
解决办法
4127
查看次数

标签 统计

opencv ×2

c++ ×1

image ×1

mat ×1

sorting ×1

vector ×1