サイズが128x128のOpenCV(Python)を介して一連のテスト画像をロードし、それらをベクトル(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、軸 = 0))
cv2.error: /path/to/OpenCV-2.3.1/modules/core/src/matmul.cpp:2781: エラー: (-215) _mean.size() == 関数 operator() の mean_sz