【发布时间】: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:
非常感谢!!
【问题讨论】:
-
贴上相关代码会有帮助。
-
这里有代码。我不知道它是否会有所帮助,但我也将链接粘贴到过滤器的文档中。
-
如果你给你的代码提供一个更简单的图像,过滤器会起作用吗?例如,尝试设置一个中间有一个白色方块的黑色图像作为输入,看看你的代码是否产生了正确的结果。这将有助于确定问题出在代码还是输入上。
-
我试过了,结果一样:/
标签: c++ image-processing image-segmentation itk watershed