PCA в OpenCV и как подготовить данные?

Я просто хочу прояснить кое-что о PCA в OpenCV. Предположим, у меня есть две строки данных (A, B).

A 3 8 7

B 2 4 5

Если я хочу создать модель PCA в OpenCV, что я должен сделать с данными? Должен ли я вычесть средние значения (например, вычесть среднее значение A из его точек данных) или это делает функция PCA?

Кто-то сказал, что OpenCV PCA ожидает, что данные будут нормализованы (между 0 и 1). Если да, то как мне нормализовать?

Надеюсь, кто-нибудь может прояснить это для меня, поскольку PCA в OpenCV очень плохо документирован в сети.

Ваше здоровье...


person user969776    schedule 05.11.2011    source источник


Ответы (1)


Данные для PCA в OpenCV необходимо не нормализовать. Но если у вас уже есть среднее значение (из некоторых предыдущих вычислений), вы можете отправить его в функцию PCACompute(), чтобы ускорить его.

Рефман OpenCV:

PCACompute(data[, mean[, eigenvectors[, maxComponents]]]) !mean, eigenvectors Параметры

  • data – входные образцы, сохраненные как строки матрицы или как столбцы матрицы.
  • среднее — необязательное среднее значение. Если матрица пуста ( noArray() ), среднее значение вычисляется из данных.

Есть хорошая статья о нормализации данных в Википедии.

Полную документацию можно найти в файле opencv.pdf, который должен находиться в папке doc/ вашей установки. В некоторых версиях он называется opencv2refman.pdf.

А также попробуйте найти книгу «Изучение OpenCV» Гэри Брэдски, она более чем хорошо объяснена.

person vasile    schedule 05.11.2011