nachdem ich eine Kanten- und Eckenerkennung gemacht habe und dann Konturen finde, habe ich diese Ausgabe.
Wie kann ich dieses Bild zuschneiden und nur dieses Rechteck mit openCV
zurückgebenBEARBEITEN:
Ich habe cvBoundingRect versucht und dann imageROI gesetzt, aber das Ausgabebild hat noch etwas Hintergrund, aber ich möchte nur das Rechteck
Danke.
Ich hoffe, Sie brauchen den ausgewählten rechteckigen Bereich.
Dazu müssen Sie ein weiteres Graustufenbild erstellen, nennen wir es "Maske". Zeichnen Sie dann die erhaltene Rechteckkontur und füllen Sie sie mit Weiß (255,255,255). Sie erhalten ein Bild wie dieses (alle Bilder, die im Malprogramm von Hand bearbeitet wurden):
Jetzt haben Sie nur eine Operation bitwise_and
auf beiden Bildern. Sie erhalten das Ergebnis wie folgt:
** NB: ** Nun, wenn es nicht das gewünschte ist, wollten Sie stattdessen diese Art von Auswahl , Informationen darüber finden Sie in diese SOF-Frage (Danke an Karl Philip für den Link).
Ich denke, Mustafa will die Box automatisch holen? Wenn nicht, bitte akzeptiere Abids Antwort und ignoriere diese.
Sonst:
Da ich nicht weiß, wie weit es verallgemeinert werden sollte, tue für dieses spezielle Bild eine Transformation, die dir gerade Linien gibt. Die untere Zeile kann jedoch falsch positiv werden. Aber mit einer Nachbearbeitung, z.B. Unschärfe, erweitern, du wirst es loswerden können. Oder Sie könnten das Wissen nutzen, dass die Linien ein Rechteck bilden.
Tags und Links c objective-c c++ opencv