簡體   English   中英

轉換向量 <Rect> OpenCV到矢量 <vector<float> &gt;在C ++中

[英]Convert vector<Rect> OpenCV to vector<vector<float>> in C++

我正在嘗試將vector Rect數據類型轉換為vector vector float以對vector vector float使用非最大抑制。 向量包含面的矩形點。 我要應用nms ,如此處所示: Non Maximum Suppression

嘗試編譯時出現以下錯誤:

**

undefined reference to `nms(std::vector<std::vector<float, std::allocator<float> >, std::allocator<std::vector<float, std::allocator<float> > > > const&, float const&)'
collect2: error: ld returned 1 exit status

**

我不知道為什么要給nms函數2x vector vector float 感謝幫助!

   vector<Rect> apply_pre_filters(vector<Rect>faces_vector){


    // Non Max Suppression
    float threshold = 0.5;
    vector<vector<float>> faces_vector_float_container;
    cout << "original vector size" << faces_vector.size() << endl;

    for (int i=0; i < faces_vector.size(); i++) {
        vector<int> faces_vector_int = {faces_vector[i].tl().x,faces_vector[i].tl().y,faces_vector[i].br().x, faces_vector[i].br().y};
        vector<float> faces_vector_float(faces_vector_int.begin(), faces_vector_int.end());

        faces_vector_float_container.push_back(faces_vector_float);
    }

    cout << "modified vector size" << faces_vector_float_container.size() << endl;
    vector<Rect> filtered_faces_vector = nms(faces_vector_float_container, threshold);

    // Change Faces detected flag
    if(faces_vector.size() > 0){
        faces_detected = true;
    }else{
        faces_detected = false;
    }

    return faces_vector;
}

我將nms文件添加到CMakeFileList.txt SOURCE_FILES() 現在似乎可以正常工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM