Hallo, ich mache gerade ein Schulprojekt, bei dem ein Roboter zwischen Flamingoplatten auf dem Boden fährt. Wir müssen einen Algorithmus erstellen, der die Positionen dieser Platten identifizieren kann, so dass wir Pfade um sie herum erstellen können (Wir verwenden dafür einen Stern).
Bisher haben wir mit AForged Library gearbeitet und wir haben die folgende Klasse erstellt, das einzige Problem dabei ist, dass bei der Erstellung der Rechtecke nicht berücksichtigt wird, dass die Platten nicht immer parallel zum Kamera-Rand sind, und In diesem Fall wird nur ein Rechteck erstellt, das die ganze Platte bedeckt. Also müssen wir irgendwie die Rotation auf dem Objekt finden, oder eine andere Möglichkeit, dies zu erkennen. Ich habe ein Bild erstellt, das helfen könnte, dies zu erklären.
Image das Problem beschreiben: Ссылка
Jede Hilfe, wie ich das machen kann, wäre sehr willkommen.
Weitere Informationen oder Ideen sind immer willkommen.
%Vor%Du musst die Blobs ein bisschen mehr analysieren, um die Ecken zu finden, wie @kigurai gesagt hat. Die AForge-Bibliothek ermöglicht dies, siehe Abschnitt Suche nach konvexen Hüllen auf diese Seite für weitere Informationen. Der folgende Screenshot (von der Seite) zeigt ein kleines Beispiel dessen, was die konvexe Hülle ist.
alt text http://www.aforgenet.com/framework/features/imaging/convex_hulls.png
Sie möchten sich die GetBlobsLeftAndRightEdges
Funktion und die GrahamConvexHull
Klasse.
Die einfachste Lösung besteht wahrscheinlich darin, die Ecken jedes erkannten Blobs zu finden und dann geometrisch zu berechnen, welche Punktpaare die verschiedenen Seiten der Quadrate bilden. Dies setzt voraus, dass die Kamera gerade nach unten schaut, so dass ein Quadrat tatsächlich ein Quadrat im Bild ist (keine perspektivische Verzerrung).
Ich bin jedoch ein bisschen neugierig, warum Sie die Rotation der Rechtecke kennen müssen. In allen Beispielbildern sind die Rechtecke mehr oder weniger mit den Bildrahmen ausgerichtet, so dass eine Begrenzungsbox für einen Rechteck-Klecks sehr nahe an dem ist, was Sie suchen. Zumindest sollte es gut genug für die Pfadfindung sein.
Tags und Links c# image-processing aforge image-recognition