【问题标题】:Filling holes in 3D volume填充 3D 体积中的孔
【发布时间】:2019-10-04 09:35:05
【问题描述】:

我正在尝试找到可以填充体积内的小空腔以及像管一样穿过体积的的库。我曾尝试过 SimpleITK,但没有取得任何成功。我在那里尝试了所有 GrayScale Morphological 操作,但这些漏洞并没有被填满。 我想知道这个问题的解决方案。

import SimpleITK as sitk
image = sitk.ReadImage("volume.mha")
filt_1 = sitk.GrayscaleFillholeImageFilter()
filt_2 = sitk.GrayscaleMorphologicalClosingImageFilter()
output_1 = filt_1.Execute(image)
output_2 = filt_2.Execute(image)

过滤器是使用默认参数以这种方式创建的,然后应用于输入图像。

感谢和问候

外婆

【问题讨论】:

  • 您最需要解决这个问题的可能是morphological closing。但是,为了让社区为您提供帮助,请发帖 minimal, reproducible code example
  • 我曾尝试使用 Python 使用 SimpleITK 的过滤器进行形态关闭。我也尝试过填充孔过滤器,但它不起作用/代码只是使用 Python 和 SimpleITK 创建过滤器实例。但没有任何效果。
  • 再说一次,如果不发布您的代码,没有人可以帮助您。
  • 我已经用我用过的代码更新了这个问题。我使用了带有默认参数的形态闭合。内核半径设置为默认值,即 (1,1,1) 。增加它会填充体积中既不是孔也不是管的空间。
  • 好,这是一个开始。现在,如果您可以使有问题的数据可访问或更好地描述它的属性,那将会很有帮助。数据是灰度还是rgb?它是哪种类型,uint8/24 还是浮点数?数据中的漏洞有多大?您如何评估关闭操作不起作用?您可以在关闭操作之前和之后发布渲染为图像的 3D 数据切片吗?你玩过内核大小吗?

标签: image-processing simpleitk image-morphology morphological-analysis


【解决方案1】:

有点晚了,但是,这个答案可以用于处理相同问题的人:

import SimpleITK as sitk

image = sitk.ReadImage("volume.mha")
#be sure that you have a binary or grayscale image
binary_image = sitk.BinaryThreshold(image, 0.5, 1, 1, 0)
dims = segmentation.GetDimension()
# then apply a fillhole algorithm
filledMask = sitk.BinaryFillhole(segmentation)
# since the method before perfoms a dilation, try a erosion afterwards
erodedMask  = sitk.BinaryErode(filledMask, [3]*dims)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2017-03-23
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 2021-04-29
    • 2012-06-14
    相关资源
    最近更新 更多