Перейти к содержимому
Compvision.ru

zamir

Пользователи
  • Количество публикаций

    1
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О zamir

  • Звание
    Новичок
  1. LDA для распознавания лиц

    Добрый день. Я не силён в математике и c++, но сильно заморочился распознаванием лиц. вроде получилось даже реализовать PCA очень хочется попробовать как работает LDA, но я никак не могу понять как это реализовать при помощи opencv прошу помощи в данном вопросе Так я обучаю pca(NOWtrainData, // pass the data Mat(), // we do not have a pre-computed mean vector, so let the PCA engine to compute it CV_PCA_DATA_AS_ROW, // indicate that the vectors are stored as matrix rows (use CV_PCA_DATA_AS_COL if the vectors are the matrix columns) MAX_PC // specify, how many principal components to retain ); Mat PCAtrainData=CvPCAtrainData; for( int i = 0; i < (train_samples*classes); i++ ) { Mat vec = NOWtrainData.row(i), coeffs = PCAtrainData.row(i); pca.project(vec,coeffs); // PC coordinates of projected vectors } Matknn=new CvKNearest( CvPCAtrainData, trainClasses, 0, false, K ); [/codebox] вот так я ищу классы [codebox] CvMat* nearest=cvCreateMat(1,K,CV_32FC1); CvMat* distance=cvCreateMat(1,K,CV_32FC1); Mat coeffs; Mat img32f=preprocessing32(img); pca.project(img32f, coeffs); // вычитаем из вектора общие элементы CvMat PCA_img = coeffs; float result=Matknn->find_nearest(&PCA_img,1,0,0,0,0); float result_more=Matknn->find_nearest(&PCA_img,K,0,0,nearest,distance); компилирую так: #!/bin/sh. if [[ $# > 0 ]] ; then base=`basename $1 .c` echo "compiling $base" gcc -ggdb `pkg-config opencv --cflags --libs` $base.c -o $base. else for i in *.cpp; do. echo "compiling $i". g++ -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs opencv`;. done. fi [/codebox] полный код во вложении, может кто подхватит и сделает полезную утилиту для сортировки фотографий например facedetect7.cpp.gz
×