2013-05-31 11 views
10

Ich bin auf der Suche nach einer Art von Auto-Trim/Crop-Funktionalität in Android. Das erkennt ein Objekt im aufgenommenen Bild und erstellt ein quadratisches Rechteck um das Objekt für Zuschneiden. Ich habe Gesichtserkennung Apis in Android gefunden, aber mein Problem ist Bilder sind Dokumente/Seiten nicht menschliche Gesichter erfasst, so wie kann ich Dokumente oder andere Objekte aus dem aufgenommenen Bild erkannt.Android Auto Crop Kamera Bilder eingefangen

Ich denke an irgendwelche Algorithmen für Objekterkennung oder einige Farberkennung. Gibt es irgendwelche Apis oder Bibliotheken dafür?

Ich habe folgenden Link versucht, aber keine gewünschte Ausgabe gefunden.

Find and Crop relevant image area automatically (Java/Android)

https://github.com/biokys/cropimage

Jeder würde kleiner Hinweis mir auch eine Menge helfen. Bitte helfen Sie. Vielen Dank im Voraus

+0

http://stackoverflow.com/questions/8147332/how-to-crop-images-without-in-intent-in-android/8147564#8147564 @ArunKumar – MKJParekh

Antwort

1

Verwenden Sie OpenCV for android.

Sie können die Watershed-Funktion (Imgproc.watershed) verwenden, um das Bild in Vordergrund und Hintergrund zu segmentieren. Dann können Sie um den Vordergrund herum zuschneiden (welches das Dokument sein wird).

Der Watershed-Algorithmus benötigt einige Marker, die die Regionen vordefinieren. Sie können beispielsweise annehmen, dass sich das Dokument in der Mitte des Bildes befindet. Erstellen Sie daher eine markierte Region in der Mitte des Bildes, um den Wasserscheidenalgorithmus zu starten.

+0

404 nicht gefunden . bitte prüfe –

1

Das hängt davon ab, was Sie erfassen und zuschneiden möchten, aber es gibt viele Möglichkeiten, dies zu erreichen. Wie littleimp vorgeschlagen, sollten Sie OpenCv für den Effekt verwenden.

Ich schlage vor, Sie Kantenerkennung Algorithmen wie Sobel zu verwenden, und führen Sie Bildumwandlung darauf mit zum Beispiel eine Threshold Funktion, die das Bild in eine binäre (nur schwarz und weiß) wird. Danach können Sie das Bild nach der gewünschten geometrischen Form suchen. Verwenden Sie dazu die Vorschläge here. Filtern Sie das gewünschte Objekt, indem Sie den Bereich und das Verhältnis der erkannten geometrischen Figur berechnen.

Es würde viel helfen zu wissen, was Sie in einem Bild erkennen möchten. Diese Methoden, die ich beschrieben habe, waren die, die ich für meinen speziellen Fall verwendet habe, der einen Algorithmus entwickelte, um das Nummernschild von einem gegebenen Fahrzeugbild zu erkennen und zu beschneiden. Es funktioniert fast perfekt und es wurde alles mit OpenCV gemacht.

Wenn Sie noch etwas wissen möchten, zögern Sie nicht zu fragen. Ich beobachte diesen Beitrag :)