Diese Methode könnte länger sein, aber jetzt ist es auf dem Kopf. Mit der Funktion findcontours wird der Vektorpunkt als Ausgabe (Randpunkte von Konturen) ausgegeben. Finde jetzt das Zentrum der Kontur, benutze Momente.
für Kontur Verwendung finden diese funk-
cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]])
Bild ist das schlaue Ausgangsbild.
berechnen Zentrum von Momenten, beziehen sich auf diesen Link http://docs.opencv.org/trunk/dd/d49/tutorial_py_contour_features.html
berechnen Abstand jedes in Konturen gespeichert Punkt vom Zentrum nun durch Vergleichen Abstand der Punkte von der Mitte
1) förmigen klassifizieren Kreis - alle Konturen Punkte werden in etwa gleich weit von der Mitte sein.
2) Platz, Rectangl e- weiteste 4 Punkte vom Zentrum zu finden, werden diese Punkte Eckpunkte und wird ungefähr gleichen Abstand haben. Nun Quadrat von Rechteck unterscheidet mit Kantenlänge
3) Traingles - dies kann schwierig sein, für verschiedene Arten von Dreieck, so dass Sie nur sonst Bedingung hier verwenden können, da Sie nur 4 Formen haben
für die Suche Verwenden Sie die Scheitelpunkte für Quadrat, Rechteck und Dreieck, um eine Maske zu erstellen.
Da Sie nur eine einzelne Farbe haben, machen Sie einen kleinen Fleck um die Mitte herum und erhalten dort den Mittelwert von RGB-Pixeln. Angenommen, Sie haben Mitte bei (100,100) und es ist ein Kreis mit Radius 20 Pixel. Erstellen Sie ein Patch der Größe sagen 10 X 10, mit der Mitte bei (100,100) und finden Sie Mittelwert zu R, G und B-Werte in diesem Patch.
für Rot R ~ 255 G ~ 0 und B ~ 0
für grüne R ~ 0 G ~ 255 und B ~ 0
für Blau R ~ 0 G ~ 0 und B ~ 255
Hinweis: opencv speichert den Wert als BGR, nicht RGB
Ich habe den Teil der Identifizierung der Formen in einem Bild bekommen. Kann mir jemand helfen, die Farbe innerhalb einer Kontur zu identifizieren. hinweis: farbe innerhalb aller konturen sind einfarbig und nicht mehrfarbig dh in einer kontur ist es nur eine unter rot, blau, grün, gelb –
In Bezug auf "Konturen in Konturen", können Sie 'findContours' eine Struktur zurückgeben, die die Hierarchie darstellt von Konturen gefunden. OpenCV hat ein [Tutorial] (http://docs.opencv.org/trunk/d9/d8b/tutorial_py_contours_hierarchy.html) zur Verwendung dieses. –
@Dan Sie missverstanden Farbe als Kontur. Ich wollte eigentlich wissen, wie man Farbe in einer Kontur erkennt. –