从图像中分割相似强度的对象 我正在Python和C++中对医学图像(特别是CT扫描)进行分割。我已经成功地使用阈值、区域生长和形态学操作的组合从切片中消除了骨骼、空气和脂肪。剩下的主要问题是将重要器官从肌肉中分割出来,因为它们的强度非常相似,而且常常彼此相邻

从图像中分割相似强度的对象 我正在Python和C++中对医学图像(特别是CT扫描)进行分割。我已经成功地使用阈值、区域生长和形态学操作的组合从切片中消除了骨骼、空气和脂肪。剩下的主要问题是将重要器官从肌肉中分割出来,因为它们的强度非常相似,而且常常彼此相邻,python,c++,image-processing,image-segmentation,Python,C++,Image Processing,Image Segmentation,例如,在下图中,可以看到一片肠与腹壁肌肉相邻: 所需的分割结果如下所示: 另一个可接受的细分如下: 我的问题是:我应该使用什么分割算法来获得期望的分割结果?到目前为止,我已经尝试: 阈值:不起作用,因为这两个区域的强度太相似 区域增长:不起作用,因为要分割的区域是“连接的” Canny过滤器:在较大的sigma值处找不到边,在较低的sigma值处找不到断开的边 分水岭变换:导致严重的过度分割图像。没有合并区域的明确标准 活动轮廓:无法在两个对象之间找到适当的边界 任何指点都很感激 阈

例如,在下图中,可以看到一片肠与腹壁肌肉相邻:

所需的分割结果如下所示:

另一个可接受的细分如下:

我的问题是:我应该使用什么分割算法来获得期望的分割结果?到目前为止,我已经尝试:

  • 阈值:不起作用,因为这两个区域的强度太相似
  • 区域增长:不起作用,因为要分割的区域是“连接的”
  • Canny过滤器:在较大的sigma值处找不到边,在较低的sigma值处找不到断开的边
  • 分水岭变换:导致严重的过度分割图像。没有合并区域的明确标准
  • 活动轮廓:无法在两个对象之间找到适当的边界
任何指点都很感激


阈值过滤器

Canny过滤器

分水岭变换


我认为提取这些对象之间的边缘可以解决问题。由于图像上的边缘可以看到,因此人类可以识别,因此在尝试任何其他算法之前,我会尝试应用高通滤波器/梯度检测来锐化边缘作为预处理步骤。之后,可能会进行一些膨胀/侵蚀,以关闭对象的边缘或删除不必要的垃圾,然后洪水填充,作为下一步的工作

另一个选项是Hough transform-它可能能够提取边缘,因为它能够提取细微特征(例如来自Mathworks:)

您还可以尝试阈值的变化-将图像划分为子集(正方形),并根据其包含的像素灰度(例如平均灰度)计算每个子集的系数。由于其中一个对象整体上比另一个对象稍轻,因此可能会起作用-这两个对象局部相似,但全局不同。您必须处理子集大小以及阈值(即,系数值)


编辑:我刚刚看到了你上传的图片。在sigma=1的情况下,对Canny的结果进行一些扩张和之后的侵蚀难道不能解决问题吗?它会闭合边缘,从而分离对象-虽然精度不是100%,但会将这两个区域分开,或多或少保持形状。

可能是通过形状?蓝色的形状看起来比顶部拉长的形状有更深的区域。也许是像中等灰度的对比度增强这样简单的事情,然后再进行上面提到的一些过程?嗨,你找到解决这个问题的方法了吗?如果是,请在答案部分张贴,并将其标记为已接受答案。我面临着类似的问题。会有很大帮助的。