我正在通过 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 行,在
均值,特征向量 = cv.PCACompute(matrix_test, np.mean(matri_test, axis=0))
cv2.error: /path/to/OpenCV-2.3.1/modules/core/src/matmul.cpp:2781: 错误: (-215) _mean.size() == mean_sz in function operator()