我目前正在使用MATLAB实现图像分割,我有两种实现方法。
- 将图像分割为两个区域 - 前景和背景。
- 将图像分割为多个区域 - 比如说3个或4个分割区域。
我正在尝试计算分割图像与基准真值(手动分割图像)之间的相似度测量,使用dice系数或Jaccard指数。这对于被分成两个区域的分割图像效果很好。这是通过以下代码实现的:
dice = 2*nnz(segIm&grndTruth)/(nnz(segIm) + nnz(grndTruth))
这需要segIm和grndTruth具有相同的尺寸。它们还必须是数字或逻辑形式。
然而,我没有找到一种方法来应用这个度量来比较多区域分割图像的相似性。有人能告诉我如何在我的应用程序中使用dice系数吗?
编辑:关于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
请注意:我想知道在三相和四相分割图像中是否可以应用Hausdorff距离度量?
编辑:我有一个新的问题。如果假设图像有4个区域,并且已经根据以下示例正确地进行了分割: 如果现在使用不同的强度值来表示不同的区域,则使用Dice系数将得到两个不同的分割结果。对于分割区域1,我有dice = 1,对于Segmented Region 2,我有dice = 0.75。但是这两个结果都是准确的。如何修改我的代码,使分割结果反映Dice系数的答案?