gpt4 book ai didi

c++ - 从循环内的 vector 中删除项目

转载 作者:太空宇宙 更新时间:2023-11-03 21:58:26 25 4
gpt4 key购买 nike

我想从循环中的 vector 中删除一些索引。
我目前有以下代码:

static void store_faces(Mat image, vector<Rect> faces,  string path, string fileName){

SkinDetector mySkinDetector;
int counter = 0;
for(int i = 0; i < faces.size(); i++){
Mat temp = image(faces.at(i));

double ratio= mySkinDetector.getSkin(temp);
cout << "found face skin ratio.. " << ratio << endl;

string file_name = path+ fileName + "_"+ NumberToString(counter)+".jpg";
imwrite(file_name, temp);
counter+=1;
}
}

我想删除那些有 ratio < 0.5 的面孔.如何从 vector<Rect> faces 中删除项目?

最佳答案

正确的方法是:

std::vector<Rect> vec = ...;
auto tail = std::remove_if(vec.begin(), vec.end(), [&](Rect const & rect) -> bool {
return mySkinDetector.getSkin(image(rect)) < 0.5;
});

vec.erase(tail, vec.end());

关于c++ - 从循环内的 vector 中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26489792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com