Lambda 表达式(匿名函数)

CircleResult p1 = [&](){
        vector<cv::Point2f> edges = Caliper::RadialWithGrayDiff2(bf, startPoint, rRange1, 0, 360, 10,
                                                                 RadialCaliperDirection::Outward, Transition::Positive, 10, 1);
        auto [center, r] = Geometry::FitCircleLeastSquaresManual(edges);
        return CircleResult{cv::Point2f((float)center.x, (float)center.y), r};
    }();    

  • [&]:捕获列表,表示 “以引用方式捕获外部所有变量”(如bf、startPoint、rRange1等),让
  • Lambda 内部可以直接使用这些变量。
  • ():参数列表,这里无参数,所以为空。
  • { … }:函数体,包含具体的圆检测和拟合逻辑。
  • 最后的():表示立即调用这个 Lambda 函数,执行后返回CircleResult对象,并赋值给p1。

更多推荐