【问题标题】:Morphological Watershed From Markers filter on ITKITK 上标记过滤器的形态分水岭
【发布时间】:2016-07-17 11:47:21
【问题描述】:

我正在尝试使用 ITK 的库创建用于图像分割的管道。但是,当我应用 itkMorphologicalWatershedFromMarkersFilter 时,结果是一个空白图像(只有 1 的二进制图像)。

有人知道如何正确应用此过滤器吗?

我的输入图像应该是一个图像的梯度,而标记图像应该是在同一图像上应用分水岭过滤器的结果。

输入image

标记image

这是过滤器的声明和应用:

typedef itk::MorphologicalWatershedFromMarkersImageFilter < OutputImageType, OutputImageType >
      MorphologicalWatershedFromMarkersImageFilterType;

MorphologicalWatershedFromMarkersImageFilterType::Pointer CwatershedFilter
      = MorphologicalWatershedFromMarkersImageFilterType::New();


CwatershedFilter->SetInput1(reader1->GetOutput());
CwatershedFilter->SetMarkerImage(reader2->GetOutput());

CwatershedFilter->SetMarkWatershedLine(true);

try{

    CwatershedFilter->Update();

}
catch (itk::ExceptionObject & error)
{
    std::cerr << "Error: " << error << std::endl;
    getchar();
    return EXIT_FAILURE;
}

此外,这是此过滤器文档的链接,来自 itk.org:

http://www.itk.org/Doxygen48/html/classitk_1_1MorphologicalWatershedFromMarkersImageFilter.html#a20e3b8de42219606ba759e822be0aaa2

非常感谢!!

【问题讨论】:

  • 贴上相关代码会有帮助。
  • 这里有代码。我不知道它是否会有所帮助,但我也将链接粘贴到过滤器的文档中。
  • 如果你给你的代码提供一个更简单的图像,过滤器会起作用吗?例如,尝试设置一个中间有一个白色方块的黑色图像作为输入,看看你的代码是否产生了正确的结果。这将有助于确定问题出在代码还是输入上。
  • 我试过了,结果一样:/

标签: c++ image-processing image-segmentation itk watershed


【解决方案1】:

虽然不是 C++ ITK,但有一个 SimpleITK Notebooks 演示了它的用法:

http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/32_Watersheds_Segmentation.html

您的标记图像只是二进制图像,而不是标签图像。我的意思是你的图像只有 0 和 1(或 255)。在链接的示例中,请注意以下几点:

min_img = sitk.RegionalMinima(feature_img, backgroundValue=0, foregroundValue=1.0, fullyConnected=False, flatIsMinima=True)
marker_img = sitk.ConnectedComponent(min_img, fullyConnected=False)

“min_img”是二值图像,但随后使用“ConnectedComponent”图像过滤器对图像进行处理,该过滤器为每个“岛”提供唯一编号。这是 WatershedFromMarker 过滤器的标记(或标签)图像的预期效果。

我还会注意到您的输入图像有一些边界线,您可能不希望将其作为输入。

【讨论】:

  • 谢谢你的例子。我的特点是原件的渐变。并且标记图像是经过一些预处理的二值图像。
  • 我编辑了问题以便更好地查看图像
  • 那么,我的输入图像不应该有边界线吗?但是我怎样才能删除这些行?或者我应该使用哪个图像?原始的RGB之一,还是灰度?我不明白。非常感谢您的帮助!
猜你喜欢
  • 2011-11-17
  • 1970-01-01
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
相关资源
最近更新 更多