Может ли кто-нибудь помочь мне с моей проблемой? Кажется, я не могу получить ответ из Интернета. Я искал, как весь день. Итак, вот моя проблема. Я создаю приложение Android для распознавания лиц, используя opencv4android 2.4.10 и Android Studio в качестве моей IDE.OpenCV4Android FaceRecognizer.predict (Mat src, int [] метки, двойная уверенность) против OpenCV FaceRecognizer.predict (Mat src)
Мне нужно использовать FaceRecognition.predict (Mat src, int [] метки, двойная [] уверенность), чтобы узнать, какое лицо обнаружено. Но в большинстве учебных пособий, которые у меня есть, есть только FaceRecognition.predict (Mat src) Я не уверен, где можно получить int [] метки и двойную уверенность []. Я был бы признателен, если бы кто-нибудь научил меня, как это сделать.
Пример кода:
File[] imageFiles = root.listFiles(imgFilter);
Mat labels = new Mat(imageFiles.length, 1, CvType.CV_32SC1);
List<Mat> images = (List<Mat>) new Mat(imageFiles.length);
int counter = 0;
int label;
//get all person id and images
for (File image : imageFiles) {
Mat img = Highgui.imread(image.getAbsolutePath(), 0);
images.add(counter, img);
label = Integer.parseInt(image.getName().split("-")[0]);
labels.put(counter, 0, label);
counter++;
}
//I created a java wrapper for this method
//this works just fine.
FaceRecognizer facerec = new FisherFacesRecognizer();
facerec.train(images, labels);
//my problem is here, the parameters are supposed to be
//*Mat src, int[] labels, double[] confidence*
//but most tutorials only have *Mat src*
int predictedLabel = facerec.predict(grayImg);
спасибо! это работает отлично. –
еще один вопрос sir, facerec.predict (grayImg, прогноз, расстояние); возвращает прогноз, даже если совпадения не найдено. Разве он не должен возвращать -1? почему моя возвращает случайную метку? –
Это значение порога для конструктора. любой порог расстояния> будет отброшен во время распознавания, поэтому, когда он не найдет хороших результатов, он вернет -1, как и ожидалось. – berak