从图片中分割出相似强度的物体

4
我正在使用Python和C++对医学图像(特别是CT扫描)进行分割。我已经成功地通过阈值处理、区域生长和形态学运算的组合消除了骨头、空气和脂肪。但是,由于重要器官和肌肉具有非常相似的强度,并且经常相邻,因此留下了一个主要问题:分割这两者。
例如,在下面的图像中,可以看到一块肠子与腹壁肌肉相邻:
[图片]
所需的分割结果如下所示:
[图片]
另一种可接受的分割结果如下所示:
[图片]
我的问题是:我应该使用什么分割算法来实现其中一个期望的分割结果?到目前为止,我尝试过:
- 阈值处理:由于两个区域在强度上太相似而无法工作。 - 区域生长:由于要分割的区域“连接”在一起,所以无法工作。 - Canny滤波器:在较大的sigma值下无法找到边缘,在较小的sigma值下会出现断开的边缘。 - 分水岭变换:导致过度分割的图像。没有明确的合并区域的标准。 - 主动轮廓:无法找到两个对象之间的适当边界。
欢迎提供任何指针。
阈值处理滤波器
[图片]
Canny滤波器
[图片]
分水岭变换
[图片]

也许是形状的原因?蓝色的形状似乎比顶部的细长形状有更暗的区域。也许只需对中间灰度进行对比度增强,然后再进行上述提到的一些处理? - sherrellbc
你好,你找到解决方案了吗? 如果有的话,请在答案部分发布并将其标记为已接受的答案。我遇到了类似的问题。这将会非常有帮助。 - Abhishek Kumar
1个回答

1
我认为提取这些对象之间的边缘可以解决问题。由于图像上的边缘可见,因此人类可以区分,我会尝试应用高通滤波器/梯度检测以锐化边缘作为预处理步骤,然后再尝试其他算法。之后,进行一些膨胀/侵蚀操作以闭合对象的边缘或删除不必要的垃圾和洪水填充作为下一步将完成工作。
另一个选择是霍夫变换 - 它可能能够提取边缘,因为它能够提取微小的特征(来自Mathworks的示例:http://www.mathworks.com/help/images/detect-lines-in-images.html)。
你还可以尝试一种阈值的变化 - 将图像分成子集(正方形),并根据它包含的像素的灰度级(例如平均灰度级)计算每个子集的系数。由于其中一个对象整体上略微较轻,因此这可能有效 - 这两个对象在局部上相似,但在全局上不同。您将不得不调整子集大小以及阈值(即系数值)。
编辑:我刚刚看到您上传的图像。在使用sigma = 1的Canny算法的结果上执行一些膨胀和侵蚀操作,是否可以解决问题?这将关闭边缘从而分离对象 - 它可能不是100%准确,但将分离这两个区域并保持形状或多或少。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接