我目前正在 MATLAB 上实现图像分割。我有两个实现。
- 图像被分割成两个区域——前景和背景。
- 图像被分割成两个以上的区域 - 假设 3 个分割区域或 4 个。
我试图通过使用骰子系数或 Jaccard 指数来计算分割图像和地面实况(手动分割图像)之间的相似性度量。这适用于已划分为两个区域的分割图像。这是通过以下代码实现的。
dice = 2*nnz(segIm&grndTruth)/(nnz(segIm) + nnz(grndTruth))
这期望 segIm 和 grndTruth 具有相同的大小。它们还必须是数字的或逻辑的。
但是,我还没有找到一种方法来应用这种度量来比较多区域分割图像的相似性。谁能告诉我如何在我的应用程序中使用骰子系数?
编辑: 关于 nkjt 的建议,我已经做了一个基本的实现,并给出了下面的结果。请随时升级任何人的代码以获得更高的准确性。
我正在考虑两个矩阵形式的两个图像。A 是分割后的图像,B 是人工地面实况。下面给出了上述建议实现的 matlab 代码。请检查并给出你的想法。
A=[1 2 3 4;1 2 3 4;1 2 3 4;1 2 3 4]
B=[1 3 4 4;1 1 3 4;1 2 3 4;1 2 3 1]
%//First Suggestion
dice = 2*nnz(A==B)/(nnz(A) + nnz(B))
%//2nd Suggestion
A1=(A==1);B1=(B==1);
A2=(A==2);B2=(B==2);
A3=(A==3);B3=(B==3);
A4=(A==4);B4=(B==4);
dice = (2*nnz(A1&B1)/(nnz(A1) + nnz(B1))...
+2*nnz(A2&B2)/(nnz(A2) + nnz(B2))...
+2*nnz(A3&B3)/(nnz(A3) + nnz(B3))...
+2*nnz(A4&B4)/(nnz(A4) + nnz(B4)))/4
请注意:我也很想知道在这种情况下是否可以对 3 相和 4 相分割图像应用Hausdorff 距离测量?
编辑:我确实有一个新查询。如果假设图像有 4 个区域,并且已经以这种方式正确分割,如下例所示: 如果现在使用不同的强度值来表示不同的区域,那么使用 Dice 系数,两个分割结果将给出不同的结果。对于分段 Reg 1,我有 dice = 1 ** 并且对于 **Segmented Region 2,我有 dice = 0.75。但两者的结果都是准确的。如何修改我的代码以使分段结果反映骰子系数的答案?