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

zamir

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

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

  • Посещение

Сообщения, опубликованные пользователем zamir


  1. Добрый день.

    Я не силён в математике и 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

×