[英]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.