Вычисление OpenCV PCA в Python

Я загружаю через OpenCV (в Python) набор тестовых изображений размером 128x128, преобразовываю их в векторы (1, 128x128) и объединяю их в матрица для расчета PCA. Я использую новые библиотеки cv2 ...

Код:

import os
import cv2 as cv
import numpy as np

matrix_test = None
for image in os.listdir('path_to_dir'):
    imgraw = cv.imread(os.path.join('path_to_dir', image), 0)
    imgvector = imgraw.reshape(128*128)
    try:
        matrix_test = np.vstack((matrix_test, imgvector))
    except:
        matrix_test = imgvector

# PCA
mean, eigenvectors = cv.PCACompute(matrix_test, np.mean(matrix_test, axis=0))

И он всегда терпит неудачу на части PCA (я тестировал загрузку изображения и все такое, итоговая матрица такая, какой она должна быть) ... Я получаю следующую ошибку:

Файл "main.py", строка 22, в

mean, eigenvectors = cv.PCACompute (matrix_test, np.mean (matri_test, axis = 0))

cv2.error: /path/to/OpenCV-2.3.1/modules/core/src/matmul.cpp:2781: error: (-215) _mean.size () == mean_sz в функции operator ()

9
задан Andrew Prock 16 May 2012 в 05:05
поделиться