2017-12-01 2 views
-1

Ich habe ein Opencv-Projekt, das ein Dokument scannen und automatisch die Größe von ihm bestimmen und Bild des Dokuments es ist die gleiche Quelle von https://github.com/ctodobom/OpenNoteScanner jetzt was ich will ist, dass ich mehrere Symbole habe am unteren Rand jedes Dokuments, wenn der Benutzer (x) oder deaktivieren Sie das Symbol mit einem Stift Ich brauche sagen, um es auf DropBox hochladen mein Problem ist, dass es möglich ist, oder es gibt einen Code, wenn ich das Symbol in meinem speichern code es kann das gesamte dokument vergleichen, nachdem opencv es mit opencv erfasst hat (zB wenn das symbol nicht auf dem dokument vorhanden ist lade die datei hoch) hier sind die bilder. enter image description here Dies ist das vollständige Bitmap-Bild und das ist das Symbol, das i enter image description here vergleichen möge, wie Sie die Welt Symbol sehen (hier ist sichtbar nicht nichts tun, wenn er kann nicht die Wolke Symbol dann etwas gefunden)Vergleichen eines Symbols auf Bitmap Bild opencv

Antwort

0

Mein Vorschlag ist dies:

- Instead of going for cross, recognize the color of ink(probably blue) 
- Look for the color 
- Based on the position of color, proceed forward 

Hier ist, wie ich erkannt grün Farbe:

Lower_green = np.array([29, 86, 6]) 
Upper_green = np.array([64, 255, 255]) 
+0

das Problem ist, dass das gesamte Dokument mit blauer Tinte wroten – Eazyz

+0

Sie können einen Teil aus dem Bild zuschneiden, um besonders blaue Farbe zu erkennen. Wählen Sie hier zum Beispiel nur den unteren Teil des Bildes, wo Sie die Symbole haben. –

+0

Ich muss wissen, wo ist die blaue Tinte auf welches Symbol, um die spezifische Funktion nicht nur blaue Farbe auf einem Bild – Eazyz

0

Wenn die Modelle, die Sie haben, identisch sind mit dem, was im Bild sein kann, können Sie unter Verwendung von cv2.matchTemplate jedes Ihrer Vorlage im Bild testen. OpenCV doc here

Wenn die Skala ein Problem ist, können Sie über mehrere Skala Ihres Bildes Schleife. Sie können eine detaillierte Methode hier finden: multi-scale-template-matching-using-python-opencv

+0

ist dies funktioniert, wenn ich meine Symbole in Zeichnungs speichern und dann prüfen, ob meine Symbole im gesamten Dokument oder der Benutzer ist es mit blau geschlossen Tinte – Eazyz

+0

und gibt es irgendeine Android-Version von Codes – Eazyz

+0

Wenn das Symbol gekreuzt wird, würde ich Nehmen Sie an, dass die Vorlagenübereinstimmung fehlschlägt oder zumindest einen niedrigeren MinMaxLoc-Ähnlichkeitswert liefert. Ich bin nicht mit Android vertraut, aber Sie können wahrscheinlich etwas Entsprechendes finden.Ich habe den Code in Python verlinkt, aber im Dokument kann man leicht die [Java-Version] (https://docs.opencv.org/3.2.0/de/da9/tutorial_template_matching.html) finden. – Tiphel