我正在通过OpenCV(Python中)加载一组尺寸为128x128的测试图像,将它们重新整形为矢量(1,128x128),并将它们放在矩阵中以计算PCA。我使用的是新CV2 libaries ...OpenCV PCA在Python中计算
代码:
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部分(我所测试的图像加载和一切,结果矩阵是应该的)......我得到的错误是:
File "main.py", line 22, in
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 in function operator()
这样做的伎俩......完全错过了这样一个愚蠢的错误!谢谢! – Veles 2011-12-19 23:44:30