Tôi đang tải một bộ ảnh thử qua OpenCV (bằng Python) có kích thước 128x128, định hình lại chúng thành vectơ (1, 128x128) và đặt chúng lại với nhau trong một ma trận để tính PCA. Tôi đang sử dụng libaries CV2 mới ...OpenCV PCA Tính toán bằng Python
Mã:
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))
Và nó allways thất bại trên một phần PCA (Tôi đã thử nghiệm tải hình ảnh và tất cả, ma trận kết quả là như thế nào cần) ... lỗi tôi nhận được là:
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()
Điều đó đã làm cho lừa ... hoàn toàn bỏ lỡ điều đó, một sai lầm ngớ ngẩn như vậy! Cảm ơn! – Veles