图像分割指标及Matlab代码实现

转自:https://blog.csdn.net/m_buddy/article/details/78807478

1. 分割指标

在完成图像分割任务之后需要对分割结果进行性能评估,一般采用的指标是IOU假阳性率。例如看下面这幅分割对照图像 
分割对照 
上面第三幅图中红色的是分割结果,绿色的是标记图像,黄色的是重叠区域。那么具体的评判是这样的 
评判标准 
IOU: 
IOU 
假阳性率: 
阳性率

2. Matlab实现代码

% 函数功能:计算两张图像的IOU
% lable_img:输入的图像A,只包含0和255像素值的图像
% res_img:输入的图像B,也同样只包含0和255像素值的图像
% 返回值:iou两张图像的iou;yl假阳性率
function [iou,yl] = Calc_IOU(lable_img, res_img)
[rows, cols] = size(lable_img);

% 计算总面积
%total_area = rows * cols;

% 统计lable_img、res_img中255像素值的个数
lable_area = 0; % 标记出来的面积
res_area = 0;   % 分割出来结果的面积
intersection_area = 0; % 相交区域的面积
combine_area = 0;      % 两个区域联合的面积

% 开始计算各部分的面积
for i = 1: 1: rows
    for j = 1: 1: cols
        if lable_img(i, j)==255 && res_img(i, j)==255
            intersection_area = intersection_area + 1;
            lable_area = lable_area + 1;
            res_area = res_area + 1;
        elseif lable_img(i, j)==255 && res_img(i, j)~=255
            lable_area = lable_area + 1;
        elseif lable_img(i, j)~=255 && res_img(i, j)==255
            res_area = res_area + 1;
        end
    end
end
combine_area = combine_area + lable_area + res_area - intersection_area;

% 得到IOU
iou = double(intersection_area) / double(combine_area);
fprintf('IOU: %f\n', iou);
% 得到假阳性率
yl = double(res_area - intersection_area) / double(combine_area);
fprintf('假阳性率为:%f\n', yl);

end
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值