matlab练习程序(IOU交并比)

IOU(Intersection over Union)交并比是目标检测中用来评价检测结果和真实结果重合度的一个指标。

公式如下:

即两个集合的交集除以并集。

matlab代码如下:

clear all;close all;clc;

A = [5,5,10,10];
B = [6,6,11,11];

xmin = max(A(1),B(1));
ymin = max(A(2),B(2));
xmax = min(A(3),B(3));
ymax = min(A(4),B(4));

intersection = (xmax-xmin+1)*(ymax-ymin+1);

S1 = (A(3)-A(1)+1)*(A(4)-A(2)+1);    %考虑到图像像素,这里有+1操作
S2 = (B(3)-B(1)+1)*(B(4)-B(2)+1);

iou = intersection/(S1 + S2 - intersection);

box1 = [A(1) A(2);
    A(1) A(4);
    A(3) A(4);
    A(3) A(2);
    A(1) A(2)];

box2 = [B(1) B(2);
    B(1) B(4);
    B(3) B(4);
    B(3) B(2);
    B(1) B(2)];

plot(box1(:,1),box1(:,2),'r');
hold on;
plot(box2(:,1),box2(:,2),'b');
title(strcat('iou:',num2str(iou)));

结果如下:

posted @ 2022-09-08 22:09  Dsp Tian  阅读(357)  评论(0编辑  收藏  举报