Ich bin neu in Python und stecken ..
Ich möchte ein Python-Skript erstellen, mit dem ich benachbarte Partikel auf einem Bild wie folgt trennen kann:
in separate Regionen wie folgt ein:
Ich wurde vorgeschlagen, die Wasserscheide-Methode zu verwenden, die, soweit ich sie verstehe, mir so etwas geben würde:
BEARBEITEN Es wurde tatsächlich herausgefunden, dass es sich um Distanztransformation handelt und keine Wasserscheide
Wo könnte ich dann einen Schwellenwert verwenden, um sie zu trennen .. Gefolgt von diesem openCV Wasserscheide Leitfaden aber es funktionierte nur um die Teilchen auszuschneiden. Ich konnte den Code nicht "umwandeln", um das zu tun, was ich wollte.
Ich nahm dann einen anderen Ansatz. Versucht, die openCV-Konturen zu verwenden, die mir gut gegeben haben Konturen der Teilchen. Ich habe dann intensiv nach einer einfachen Möglichkeit gesucht, Polygonoffset durchzuführen, um die Kante wie folgt zu verkleinern:
Wenn ich die Mitte der Versatzkonturen (Polygon) benutze, sollte ich die Anzahl der Partikel angeben. Aber ich habe gerade einen einfachen Weg gefunden, Kantenversatz / Polygonschrumpfen mit Python zu machen.
Hier ist ein Skript mit numpy, scipy und dem scikit-image (aka skimage). Es nutzt lokale Maxima Extraktion und Watershading plus Kennzeichnung (dh verbundene Komponenten Extraktion).
%Vor%Tags und Links python opencv matplotlib numpy