改善分割扩散

信息处理 图像处理 图像分割
2022-01-06 10:57:08

我目前正在实施一种有效的方法来分割 3D CT 图像上的器官。我使用一种算法 (SLIC) 在我的 CT 3D 矩阵的每个切片上生成超像素。该过程类似于 k-means 算法,尽管我们不需要为每个像素访问整个图像。然后我基于超像素构建一个图:每个超像素是图中的一个节点,如果两个节点包含 4 个相邻的像素,则它们是连接的。两个节点之间的边的权重是它们的色差:

(color1color2)²

然后我尝试实现一种方法,允许用户单击超像素并将其标记为前景或背景,启动扩散算法以在两个标签之间划分 3D 图。我使用了IFT 算法 但是它的性能不如我想要的那样好:有时分配标签或纠正错误推断的标签会导致算法选择不正确的超像素。

我使用的步骤:

  1. 将我的矩阵转换为 8 位灰度(0 到 255 值之间)。
  2. 值不在 low_value 和 high_value 之间的每个像素都设置为 0(黑色)。
  3. 我进行直方图均衡以增加剩余值的对比度(从而试图实现更好的超像素边界)。
  4. 将模糊内核应用于我的矩阵。
  5. 计算每个切片的超像素。
  6. 创建相应的图并在它们之间创建边。
  7. 用户点击前景标签(每个超像素都设置为前景)。
  8. 单击背景标签可以将一些超像素设置为背景。

我有时会取得相当令人满意的结果。但是一些点击可能会完全破坏正确的图形标签,即使它们应该有效。我在下面的imgur 相册中放了一个小插图示例。

所以,我的担忧和问题是:

  1. IFT 算法适用于 3D 吗?我不明白为什么不这样做,但我的示例表明可能存在标签泄漏通过前一个/下一个切片。
  2. 什么样的预处理步骤可以改善扩散。
  3. 我考虑过使用 dijkstra 算法来确定哪个种子更接近某个超像素。它的效果不太好:它可以通过正确的颜色距离功能实现我想要的吗?
  4. 你有什么建议或文章可以帮助我吗?

谢谢,对不起,如果我不清楚,英语不是我的第一语言。

2个回答

在您的图像中,似乎区域更多地由它们的边缘边界而不是它们的颜色来定义。

由于 IFT 使用色差度量,因此在某些前景和背景超像素之间看不到太大差异。

我会尝试基于边界边缘强度的不同度量,而不是色差。例如,将两个节点之间的边缘权重设置为沿它们共享的超像素边界的平均边缘强度。您可能需要定义最小边界长度,例如 20 像素,否则噪声会影响这一点。

我之前使用过这种测量方法来组合分割区域,并且效果很好。有趣的是,我使用 IFT 在每个像素的基础上进行分割。您正在应用的这种方法看起来很有趣!

您也可以将这两个测量值结合起来。

所以我在这个特殊问题上取得了进展。我还没有优化和改进我们的解决方案,但这绝对是对我在此处发布的内容的改进。

首先,如果像素值不在我的目标强度窗口之外,我不会将它们设置为 0。我觉得虽然它确实为我的超像素产生了清晰的边界,但这个预处理步骤可能会干扰 IFT 算法。

我还认为 IFT 算法是在相同的超像素上标记和重新标记。我使用了算法的差分版本,它在我的图表中提供了更好的全局扩散。

在低对比度区域获得的边缘可能是锯齿状的,但我计划使用松弛 IFT 或一些后处理步骤来平滑它们,例如将傅里叶变换应用于我的轮廓,应用低通滤波器 + 逆 FT 并通过以下方式获得平滑轮廓形态算子。