一、代码说明:
vector 的数据类型是自定义的,需要根据一个以上的条件对 vector 中的数据进行清除。
struct LabelInfo
{
cv::Rect Rectangle;
int Area;
cv::Point2f Centroid;
};
std::vector<LabelInfo> LabelsInfo;
二、代码实现:
根据 Area 的规定期间:[minArea,maxArea),把 vector<labelInfo>LabelsInfo 中期间外的数据清除。
注意:如果 lambda 中的数值不是常数,需要引用外部变量(存储的数值),则要把引用的变量名放到前面的方括号 [ ] 中。多个变量之间用逗号分隔。
LabelsInfo.erase(remove_if(LabelsInfo.begin(), LabelsInfo.end(),
[minArea, maxArea](LabelInfo n){ return n.Area < minArea || n.Area >= maxArea ; }),
LabelsInfo.end());
lambda 表达式技术真的很酷。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。