Я пытаюсь реализовать распознавание лиц с помощью собственных интерфейсов, используя OpenCV для Android.Использование функции PCACompute от OpenCV
У меня есть набор обучающих изображений, которые представляют собой изображения с серой шкалой 100x100 пикселей. В настоящее время я использую Highgui.imread для чтения на этих изображениях, поэтому каждое изображение представляет собой Mat с шириной и высотой 100. Я пытаюсь использовать функцию Core.PCACompute для поиска основных компонентов этого набора изображений.
public static void PCACompute(Mat data, Mat mean, Mat eigenvectors, int maxComponents)
Так что мой вопрос: какие измерения должен иметь первый аргумент (данные Mat)? Можно ли передать ему набор из нескольких изображений, хотя данные представляют собой только один Мат?
Или я делаю это неправильно, и это неправильная функция для использования для собственных поверхностей? Один учебник, который я видел, использует функцию C++, называемую cvCalcEigenObjects, но я не могу найти эквивалентный метод Java ...
В статье Cognotics, которую вы связали (часть 5, страница 4), они вызывают cvCalcEigenObjects с аргументами nTrainFaces и faceImgArr. faceImgArr - это массив изображений nTrainFaces. В контексте собственных границ объект данных Mat в вашем коде будет представлять собой три изображения лица? – user1031921