在opencv中连接向量Rect

时间:2013-02-18 02:43:54

标签: c++ opencv image-processing

我有两个矩形向量

std::vector<cv::Rect>faces;
std::vector<cv::Rect>windows;

我需要将窗口与面孔连接起来...因为我将代码编写为

 int fsize=faces.size();
    for(int i=0;i<windows.size();i++)
    {
        faces[fsize]=windows[i];
        fsize++;
    }

但我认为这段代码正在创建分段错误......任何人都知道betr..or任何内置函数?

2 个答案:

答案 0 :(得分:3)

使用insert:

faces.insert(faces.end(), windows.begin(), windows.end());

或移动内容:

faces.insert(faces.end(), std::make_move_iterator(windows.begin()), 
                          std::make_move_iterator(windows.end()));

答案 1 :(得分:2)

您正在将faces替换为windows,如果windows的元素数超过faces,则您访问faces的边界。

如果你的意思是Concatenating而不是replacing

faces.reserve(faces.size() + windows.size());
faces.insert(faces.end(), windows.begin(), windows.end());