Ich versuche, mit den Bibliotheken von ITK eine Pipeline für die Bildsegmentierung zu erstellen. Aber wenn ich das ItkMorphologicalWatershedFromMarkersFilter anwende, ist das Ergebnis ein leeres Bild (binäres Bild mit nur 1en).Morphologische Wasserscheide von Markern Filter auf ITK
Kann jemand diesen Filter richtig anwenden?
Mein Eingabebild sollte der Gradient eines Bildes sein, und das Markierungsbild sollte das Ergebnis der Anwendung eines Wasserscheidenfilters auf demselben Bild sein.
Eingang image
Marker image
Und dies ist die Erklärung und die Anwendung des Filters:
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;
}
Auch dies ist der Link zu der Dokumentation dieses Filters von itk .org:
Vielen Dank !!
Es wäre hilfreich, wenn Sie relevanten Code eingefügt hätten. – siavashk
Da ist der Code. Ich weiß nicht, ob es helfen würde, aber ich habe auch den Link zur Dokumentation des Filters eingefügt. –
Wenn Sie Ihren Code mit einem einfacheren Bild füttern, funktioniert der Filter? Versuchen Sie beispielsweise, ein schwarzes Bild mit einem weißen Quadrat in der Mitte als Eingabe festzulegen und festzustellen, ob Ihr Code das richtige Ergebnis liefert. Dies wird helfen festzustellen, ob das Problem mit dem Code oder der Eingabe ist. – siavashk