1

Ich verwende OpenCV4Android Version 3.1.0 und möchte, dass die Android-Kamera eine Karte erkennt, zB: Kreditkarte, Kundenkarte oder dergleichen. Um eine solche Funktion mit OpenCV zu implementieren Ich habe versucht, es mit Edge-Detection-Funktion zu tun, aber wie Sie in der folgenden Abbildung sehen, erkennt Kantenerkennung alle Kanten in dem Rahmen, während ich nach dem nur den äußeren Rahmen der Karte suchen suchen.Wie erkenne ich den äußeren Rahmen eines Objekts?

Ich versuchte auch Object-Detection "Konturerkennung" -Funktion, und wie Sie in der folgenden Abbildung sehen, wurde der äußere Rahmen der Karte nicht erkannt.

lassen Sie es mich wissen, was ist die optimale Lösung oder Funktion i zu können, verwenden nur den äußeren Rahmen eines beliebigen Karte

Kantenerkennung erkennen: enter image description here

Form“ Kontur“Erkennung: enter image description here

Antwort

2

die Anzahl der Kanten, die durch Kantendetektion festgestellt werden, wird auf die Schwellenwerte bezogen eingestellten (oder th sind standardmäßig eingestellt). Versuchen Sie, mit diesen Schwellenwerten zu manipulieren, um zu sehen, ob Sie bessere Ergebnisse erzielen. Sie können auch die Gradientenfunktion ausprobieren, bei der Sie die "Stärke" der Kante anstelle der binären "Präsenz" der Kante erhalten. Dies wird Ihnen zeigen, dass nicht alle Kanten gleich sind.

+0

danke..würden Sie mir bitte sagen, wie Sie die Farbverlaufsfunktion verwenden, die Sie bei canny edge-detector erwähnt haben? – user2121

+0

Sie können z. B. die Sobel-Funktion verwenden, die Bildableitungen berechnet. Weitere Informationen finden Sie unter [link] (http://docs.opencv.org/3.1.0/d4/d86/group__imgproc__filter.html#gacea54f142e81b6758cb6f375ce782c8d) oder [link] (http://docs.opencv.org/3.1 .0/d2/d2c/tutorial_sobel_derivative.html) – MateuszB

Verwandte Themen