Wie segmentieren Blutgefäße python opencv

8

Ich versuche, die Blutgefäße in Netzhautbildern mit Python und OpenCV zu segmentieren. Hier ist das Originalbild:

Idealerweise möchte ich, dass alle Blutgefäße so gut sichtbar sind (anderes Bild):

Hier ist, was ich bisher versucht habe. Ich nahm den grünen Farbkanal des Bildes.

%Vor%

Dann habe ich versucht, einen angepassten Filter zu erstellen, indem ich diesem Artikel folge und das ist das Ausgabebild:

Dann habe ich versucht, Max Entropy Thresholding zu machen:

%Vor%

Das ist das Ergebnis, das ich bekomme, das offensichtlich nicht alle Blutgefäße zeigt:

Ich habe auch versucht, die angepasste Filterversion des Bildes zu nehmen und die Größe seiner Sobel-Werte zu nehmen.

%Vor%

Dies lässt die Gefäße mehr herausspringen:

Dann habe ich Otsu Thresholding darauf versucht:

%Vor%

Otsu liefert keine adäquaten Ergebnisse. Es endet mit Rauschen in den Ergebnissen:

Jede Hilfe wird geschätzt, wie ich die Blutgefäße erfolgreich segmentieren kann.

    
Shalin Shah 15.07.2016, 18:48
quelle

1 Antwort

1

Ich habe vor ein paar Jahren an der Erkennung von Netzhautgefäßen gearbeitet und es gibt verschiedene Wege, dies zu tun:

  • Wenn Sie kein Top-Ergebnis, sondern etwas Schnelles brauchen, können Sie orientierte Öffnungen verwenden, hier und hier .
  • Dann haben Sie eine andere Version mit mathematischer Morphologie Version hier .

Für bessere Ergebnisse, hier sind einige Ideen:

FiReTiTi 16.07.2016 19:33
quelle