Ich arbeite an einem Gesichtserkennungsproblem, ich habe Arbeitscode, der Androids FaceDetector verwendet, um die Gesichter zu finden, aber ich muss herausfinden, wie OpenCV/JavaCV Funktionen zur Gesichtserkennung implementieren. Dies ist keine Live-Kamera, es verwendet ein Bild aus der Galerie, ich bin in der Lage, diesen Bilderpfad abrufen, aber ich kann nicht den CvHaarClassifierCascade-Klassifikator und CvMemStorage-Speicher zu initialisieren, wenn jemand mich in die richtige Richtung zeigen kann oder stellen Sie einen Quellcode bereit, der diese Variablen in Java korrekt initialisiert. DankeOpenCV/JavaCV Android Gesichtserkennung Initialisierung
2
A
Antwort
1
Sie könnten es so tun: Stellen Sie einfach ein BufferedImage.
Alternativ laden Sie das Original IplImage direkt mit dem Image-Pfad mit cvLoadImage (..).
// provide an BufferedImage
BufferedImage image;
// Preload the opencv_objdetect module to work around a known bug.
Loader.load(opencv_objdetect.class);
// Path to the cascade file provided by opencv
String cascade = "../haarcascade_frontalface_alt2.xml"
CvHaarClassifierCascade cvCascade = new CvHaarClassifierCascade(cvLoad(cascade));
// create storage for face detection
CvMemStorage tempStorage = CvMemStorage.create();
// create IplImage from BufferedImage
IplImage original = IplImage.createFrom(image);
IplImage grayImage = null;
if (original.nChannels() >= 3) {
// We need a grayscale image in order to do the recognition, so we
// create a new image of the same size as the original one.
grayImage = IplImage.create(image.getWidth(), image.getHeight(),
IPL_DEPTH_8U, 1);
// We convert the original image to grayscale.
cvCvtColor(original, grayImage, CV_BGR2GRAY);
} else {
grayImage = original.clone();
}
// We detect the faces with some default params
CvSeq faces = cvHaarDetectObjects(grayImage, cvCascade,
tempStorage, 1.1, 3,
0;
// Get face rectangles
CvRect[] fArray = new CvRect[faces.total()];
for (int i = 0; i < faces.total(); i++) {
fArray[i] = new CvRect(cvGetSeqElem(faces, i));
}
// print them out
for(CvRect f: fArray){
System.out.println("x: " + f.x() + "y: " + f.y() + "width: " + f.width() + "height: " + f.height());
}
tempStorage.release();
1
Die Klassendefinitionen sind im Grunde Ports Java der ursprünglichen Header-Dateien in C, sowie die fehlenden Funktionalität nur durch die C++ API von OpenCV ausgesetzt. Sie auf diesen Link verweisen können, enthält es http://code.google.com/p/javacv/
und http://geekoverdose.wordpress.com/tag/opencv-javacv-android-haarcascade-face-detection/
Verwandte Themen
- 1. Android camera2 gesichtserkennung
- 2. Android Gesichtserkennung Alternativen
- 3. Gesichtserkennung in Android?
- 4. So überprüfen Sie die Lebendigkeit in Gesichtserkennung in Android Gesichtserkennung
- 5. Gesichtserkennung in Android ohne Benutzerinteraktion
- 6. Gesichtserkennung mit OpenCV in Android?
- 7. Kamera Gesichtserkennung
- 8. Stream-Video-Gesichtserkennung mit Video-Gesichtserkennung und Bild Gesichtserkennung
- 9. Gesichtserkennung und Tracking mit Android-Vision
- 10. Gesichtserkennung mit Android SDK nicht opencv
- 11. C# Gesichtserkennung
- 12. Gesichtserkennung Matlab
- 13. Gesichtserkennung und -erkennung
- 14. Initialisierung Widgets in Android
- 15. Android Cursor Initialisierung
- 16. Android Fragment Initialisierung
- 17. OpenCV/EmguCV Gesichtserkennung
- 18. Gesichtserkennung und Zuschneiden
- 19. OpenCV Gesichtserkennung echte Person
- 20. Gesichtserkennung + Image Morphing
- 21. iPhone OpenCV Gesichtserkennung
- 22. Gesichtserkennung in PHP
- 23. CamShift + Gesichtserkennung in OpenCv
- 24. Gesichtserkennung und geben Filter
- 25. Gesichtserkennung und Vergleich
- 26. Gesichtserkennung Problem mit CIDetector
- 27. Sony SmartEyeGlass und Gesichtserkennung
- 28. Gesichtserkennung Asus TF201
- 29. AVFoundation Gesichtserkennung Frame
- 30. Software zur Gesichtserkennung/-zusammenführung