zoukankan      html  css  js  c++  java
  • 目标检测 — 计算IOU

    1、IOU=交集/并集

    #include<iostream>
    #include<algorithm>
    #include<stdio.h>
    #include <vector>
    #include<string>
    #include<sstream>
    #include<map>
    #include<set>
    #include<iomanip>
    #include <functional> // std::greater
    using namespace std;
    
    double calcS(vector<int> num)
    {
        return (num[2] - num[0])*(num[3] - num[1]);
    }
    
    vector<vector<double>> calcIOU(vector<vector<int>> &nums)
    {
        vector<vector<double>> res(nums.size(), vector<double>(nums.size(),0.0));
        for (int i = 0; i < nums.size(); ++i)
        {
            for (int j = i + 1; j < nums.size(); ++j)
            {
                
                int x1 = max(nums[i][0], nums[j][0]);
                int x2 = min(nums[i][2], nums[j][2]);
                int y1 = max(nums[i][1], nums[j][1]);
                int y2 = min(nums[i][3], nums[j][3]);
                double inter_square = (x2 - x1)*(y2 - y1);
                double union_square = calcS(nums[i]) + calcS(nums[j]) - inter_square;
                res[i][j] = inter_square / union_square;
            }
        }
        return res;
    }
    
    int main()
    {
        vector<vector<int>> nums;
        vector<vector<double>> res;
        // 表示坐标位置,(x1,y1,x2,y2),分别是左上角和右下角的坐标
        int a[3][4] = { { 3,6,9,11 },{ 6,3,8,7 },{ 3,7,10,12 } };
        for (int i = 0; i < 3; ++i)
        {
            vector<int> temp;
            for (int j = 0; j < 4; ++j)
            {
                temp.push_back(a[i][j]);
            }
            nums.push_back(temp);
        }
    
        res = calcIOU(nums);
        for (int i = 0; i < nums.size(); ++i)
        {
            for (int j = i + 1; j < nums.size(); ++j)
                cout << fixed << setprecision(3) <<res[i][j] << "  ";
        }
        cout << endl;
        system("pause");
        return 0;
    }
  • 相关阅读:
    VS快捷键
    eclipse快捷键(shift+ctrl+l能出来所有的快捷键)
    永远不要觉得自己代码有多6
    winform中使用webBrowser时如何与JS交互
    HTML CSS
    HTTP 协议 session cookie
    [Python3]Python官方文档-Python Manuals
    [python3]PyCharm编辑器
    Loadrunner上传文件与下载文件脚本
    Spotlight安装
  • 原文地址:https://www.cnblogs.com/eilearn/p/9583727.html
Copyright © 2011-2022 走看看