5

我目前正在 MATLAB 上实现图像分割。我有两个实现。

  1. 图像被分割成两个区域——前景和背景。
  2. 图像被分割成两个以上的区域 - 假设 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。但两者的结果都是准确的。如何修改我的代码以使分段结果反映骰子系数的答案?

在此处输入图像描述

4

2 回答 2

3

Arbel´aez 等人的工作。描述了几种比较图像分割算法结果的方法。请参阅第 3.1 节及其子节。

我相信可以在他们的项目网页中找到一些 Matlab 代码。

伯克利分割数据集 (bsds500) 是图像分割社区中公认的基准。

于 2013-11-12T10:30:58.583 回答
1

您可能需要研究为分段而设计的度量,例如归一化概率兰德。

但是,我可以看到两种使用现有代码快速执行某些操作的可能方法。

1)不要使用逻辑图像和&,使用:

dice = 2*nnz(segIm==grndTruth)/(nnz(segIm) + nnz(grndTruth));

这里的 segIm 和 grndTruth 都应该是数字的(理想情况下,前景区域的值为 1、2、3 等的整数)。

2) 为每个前景区域从 segIm 和 grndTruth 中生成一组二值图像,并为每个区域定义一个骰子系数。

于 2013-11-12T10:34:46.850 回答