Ich bin neu in der Bildverarbeitung und versuche, meine Füße nass zu machen. Ich habe einige Puzzleteile fotografiert und möchte die Teile isolieren.
Ich verwende die Python simplecv Bibliothek , dies zu tun, und bisher habe ich es geschafft , ziemlich anständige Ergebnisse erhalten verwenden findBlobs()
, hueDistance()
und drawMinRect()
. Folgendes habe ich bisher
Ziemlich gut, ehrlich. Der einzige Ort, an dem es falsch ist, ist, dass sich diese beiden Teile leicht rechts von der Mitte berühren.
Ich habe versucht, das Bild zu erweitern, aber das scheint das Problem zu verschärfen. Wie kann ich diese Blobs "verkleinern", um die Überlappung zu beseitigen?
image-processing
opencv
image-segmentation
Avi Romanoff
quelle
quelle
Antworten:
Ich stimme Abid Rahman K zu, jedoch würde nur das Erodieren zu einer Formschrumpfung führen. Um die Lücke nur zu schließen, schlägt Abid Rahman einen Ansatz auf der Basis von Wassereinzugsgebieten vor. Für eine schnellere und einfachere Methode können Sie jedoch Folgendes versuchen:
Auf diese Weise haben Sie fast die gleiche Form (mit einigen Artefakten, die aufgrund der Morphologie entstehen), aber Sie werden sicherlich einzelne verbundene Komponenten erhalten.
Wassereinzugsgebiete und Entfernungstransformationen sind ebenfalls leistungsstark und können eine gute Wahl sein, wenn Sie viele Überlappungen haben.
quelle