Segmentieren von Pillen aus dem Hintergrund

9

Ich habe erst kürzlich mit der Bildverarbeitung angefangen und einen entsprechenden Kurs in der Grad-Schule besucht. Aber ich habe bereits ein Projekt ohne zu viele Informationen zu diesem Thema, aber ich habe einige stetige Fortschritte gemacht. Ich versuche, die Pillen von ihren jeweiligen Hintergründen zu segmentieren. Für Bilder mit kontrastierendem Hintergrund konnte ich die Pillen nach Otsus Methode segmentieren. In Bezug auf Bilder mit ähnlichen Hintergründen funktioniert die Methode von Otsu nicht ganz. Ich habe einige Artikel in Bezug auf die Segmentierung gelesen, aber die meisten Artikel, die ich gelesen habe, verwenden je nach Art des Bildes einen manuellen Schwellenwert. Ist es möglich, den richtigen Schwellenwert zu ermitteln und ein Bild automatisch zu schwellen und Techniken wie Samenwachstum oder Clustering zu verwenden, um das Bild zu segmentieren?

Der Farbraum, den ich verwendet habe, ist L a b *, daher würde ich mich freuen, wenn Sie den geeigneten Farbraum empfehlen könnten, den ich auch verwenden sollte.

Die fraglichen Bilder:

Original 1

Geben Sie hier die Bildbeschreibung ein

Ergebnis 1

Geben Sie hier die Bildbeschreibung ein

Original 2

Geben Sie hier die Bildbeschreibung ein

Ergebnis 2

Geben Sie hier die Bildbeschreibung ein

Original 3

Geben Sie hier die Bildbeschreibung ein

Ergebnis 3

Geben Sie hier die Bildbeschreibung ein

GamingX
quelle
7
Könnten Sie bitte ein Bild hochladen? Was ist mit adaptivem Schwellenwert?
Quentin Geissmann
3
Was ist mit Level-Set-Methoden und aktiven Konturen? Sie können die Pillen nicht nur nach dem Intensitätswert (Schwellenwert), sondern auch nach der Objekttextur vom Hintergrund segmentieren. Der verwendete Farbraum ist nur ein Koordinatensystem für die Farben. Verwenden Sie eines, das die Farben in Ihrem Bild zur Segmentierung am besten unterscheidet. Wenn die Bilder beispielsweise in violetten Tönen vorliegen, können Sie die Graustufenkonvertierung verwenden, wobei die rote und blaue Komponente stärker gewichtet werden.
Libor
Quentin: Ich habe nicht genug Ruf, um die Fotos hochzuladen.
GamingX
@Syed Laden Sie sie an einem öffentlichen Ort hoch und fügen Sie die Links zur Frage hinzu, wenn Sie möchten.
Maurits

Antworten:

2

Wenn Sie den Schwellenwertansatz verwenden möchten, sollten Sie eine adaptive Schwellenwertmethode verwenden, wenn es große Beleuchtungsschwankungen gibt, wie im dritten Beispielbild ( dsp-Frage hier ).

Sie sollten auch mit Farbräumen experimentieren, es ist einfach: Das Skript zum Zerlegen des Bildes in verschiedene Farbräume sollte nicht länger als ein paar Zeilen sein, und viele Bildbetrachter haben diese Option zur Verfügung. Das beste sollte einfach visuell zu bestimmen sein. Wenn Sie sich über Farbräume informieren möchten, gibt es hier eine gute Frage .

Schließlich möchten Sie vielleicht einen anderen Ansatz ausprobieren. Eine Idee wäre, eine nicht perfekte Segmentierung, dann eine Kantenerkennung durchzuführen und schließlich so etwas wie eine Hough-Transformation für Kreise zu verwenden, die auch bei (unvollständigen) Kreisbögen gut funktioniert. (Diese Idee gilt natürlich nur für runde Pillen)

Penelope
quelle
Was wäre eine gute Idee für eine nicht perfekte Segmentierung?
GamingX
@Syed Sieht aus wie OpenCV Canny (Kantenerkennung) und sogar Hough arbeiten mit grauen Bildern (kein Schwellenwert erforderlich), sodass Sie den Schwellenwertschritt insgesamt überspringen können. Die Schwellenwert-Segmentierung hängt stark von den Bildern ab. Eine klare Antwort wäre jedoch: Entschuldigung, ich weiß es nicht. Ich denke, eine nicht adaptive Methode wäre ausreichend, aber ich konnte keine bestimmte vorschlagen, da ich dies eine Weile nicht getan habe. Recherchiere einfach ein wenig über einfache Segmentierungsmethoden;)
Penelope
2

Circle-Hough-Transformationen aus der OpenCV-Bibliothek eignen sich gut für diese Anwendung. Sie müssen eine Reihe von Radien ausführen, aber die beste Hough-Antwort gibt Ihnen die Grenzen und Zentren der Pillen. Beachten Sie, dass Sie generalisierte Hough-Transformationen verwenden müssten, um nicht kreisförmige Pillen zu finden. Es funktioniert auch dann, wenn die Pillen verschlossen sind oder Randpunkte fehlen.

Schwellenwerte können eine schlechte Lösung sein, da Sie im Feld möglicherweise in Situationen geraten, in denen kein Schwellenwert die Pille vom Hintergrund trennt, weshalb ein Algorithmus, der von den relativen Positionen von Kantengruppen abhängt, überlegen ist.

Enthdegree
quelle
1

Um dieses Problem zu lösen, müssen Sie Hintergrund und Vordergrund trennen. Dies ist die Lösung, ich schlage Ihnen vor:

1) konvertiere das Bild von Rgb in Graustufen; Sie erhalten ein Bild, das wir nennen I1;

2) Wenden Sie einen morphologischen Filter an, Erosion mit einem großen Radius, eventuell mehrmals ==> Sie sollten die Pille durch Erosion löschen und nur den Hintergrund erhalten; Sie erhalten ein neues Bild I2;

3) abziehen I2zu I1, werden Sie den Vordergrund , dh die Pille erhalten;

4) Wenden Sie einen weiteren morphologischen Filter an, um ein Loch in der Pille zu füllen, das Sie erhalten haben.

5) Wenden Sie einen morphologischen Filter, eine Erosion und einen kleinen Radius an, um alle isolierten Pixel zu entfernen.

Diese Methode erfordert keine Schwelle, Formerkennung, Farbsegmentierung oder irgendetwas anderes.

Samir
quelle