OpenCV C ++中两个椭圆的IOU重叠

时间:2020-03-17 14:48:09

标签: c++ opencv overlap ellipse

我一直在寻找一些C ++内置函数或已实现函数,用于根据IOU(联合交集)又称Jaccard系数来计算两个椭圆重叠,显然,我发现它在{ {3}}

static inline float rotatedRectIOU(const RotatedRect& a, const RotatedRect& b)
{
    std::vector<Point2f> inter;
    int res = rotatedRectangleIntersection(a, b, inter);
    if (inter.empty() || res == INTERSECT_NONE)
        return 0.0f;
    if (res == INTERSECT_FULL)
        return 1.0f;
    float interArea = contourArea(inter);
    return interArea / (a.size.area() + b.size.area() - interArea);
}

由于我使用的是旧版OpenCV,因此我尝试仅复制代码,因为它似乎不依赖于任何其他资源。代码运行非常顺利。但是,结果是非常错误的,我不确定为什么。

file

0 个答案:

没有答案