2016-03-29 2 views
0

ITKからのライブラリを使用して、イメージセグメンテーションのパイプラインを作成しようとしています。しかし、itkMorphologicalWatershedFromMarkersFilterを適用すると、結果は空白の画像(1だけのバイナリ画像)になります。マーカーからの形態的流域from ITK

このフィルタを正しく適用する方法を知っている人はいますか?

私の入力画像は画像の勾配でなければならず、マーカー画像は同じ画像上にウォーターシェッドフィルタを適用した結果でなければなりません。

入力 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

ありがとうございます!

+0

関連するコードを貼り付けると役立ちます。 – siavashk

+0

コードがあります。私はそれが助けになるかどうかわかりませんが、フィルターの文書へのリンクも貼り付けました。 –

+0

あなたのコードをより単純な画像にすると、フィルターは機能しますか?たとえば、真ん中に白い四角の黒い画像を入力として設定し、コードが正しい結果を生むかどうかを確認します。 これは、問題がコードまたは入力であるかどうかを確認するのに役立ちます。 – siavashk

答えて

0

ないC++ ITKが、それは使い方だ実証SimpleITKノートPCがありますが:

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フィルタのマーカー(またはラベル)イメージに期待されるものです。

また、入力画像に境界線がいくつかありますが、これは入力したくないことにも注意してください。

+0

その例をありがとう。私の特徴はオリジナルの勾配です。そして、マーカー画像は、いくつかの前処理を伴う2値画像である。 –

+0

私は画像のより良い見方のために質問を編集しました –

+0

したがって、私の入力画像は境界線を持つべきではありませんか?しかし、どうすればそれらの行を削除できますか?または私はどのイメージを使うべきですか?オリジナルのRGB、またはグレースケール?私はそれを理解していませんでした。助けてくれてありがとう! –

関連する問題