我的细分是否准确?

时间:2012-03-18 07:13:14

标签: matlab image-segmentation image-comparison

我使用Region Growing从CT图像中分割出肝脏。我需要计算参考图像和分割区域之间的RMS误差。当我运行代码时,我得到1.1146的输出。当我重新排列输入顺序时,我得到的值为2.2164。我不知道我的准确程度。因为,我不知道RMS误差的范围。第一个图像是参考图像'ref3.jpg',第二个图像是分割图像'm5.jpg'。请帮助我。我的代码是,

%metrics.m
I=imread('ref3.jpg');
J=imread('m5.jpg');  
re2=rms_error(I,J)

----
function [er]=rms_error(A1,A2)
% A1, A2 : Matrices of same size MxN
% er : Rms error
% Author : Kamlesh Pawar

if (size(A1)~= size(A2))
    display('Matrix dimension mismatch while calculating RMS value');
    return;
end

er = sum((A1(:)-A2(:)).^2);

er=sqrt(er/size(A1(:),1));
end

Reference image ref3.jpg Segmented image m5.jpg

2 个答案:

答案 0 :(得分:1)

您真正需要的是"基于区域的评估分段性能的措施"。

我可以建议以下措施是非常可接受的措施。 1.骰子系数 2.敏感度 3.豪斯多夫距离 4.平均绝对距离

有关计算详情,请参阅下图。 其中C是图像中的像素总数和| s |表示任何集合的基数。 A(s)和A(G)是分割结果和手动描绘的紧密边界区域。

我还建议你在自动分割结果上使用形态开放。希望这有用。

enter image description here

答案 1 :(得分:0)

此处使用RMS错误不太合适。 RMS误差测量2幅图像之间偏差的幅度,如果比较由灰度值组成的图像,则会产生很大的影响。您的病例进行了分类比较:像素属于肝脏(1)还是不属于(0)?我的图像在多大程度上同意?
第一种可能性是测量2个图像之间的相关性。您可以使用corr2执行此操作 第二种可能性是Cohen的kappa统计量,或Kappa协议指数(KIA)。该措施考虑到了偶然的协议。您可以使用函数kappa.m,这是Matlab Central的一个贡献,您可以找到here