c++ - CImg and Eigen, eigenvalues coming up all the same values -


i using cimg , eigen library facial recognition project. have (seemingly) working until point generate eigenvalue vector. all values come same (-6.27744e+066), incorrect. code follows in msvs 2013 pro:

int _tmain(int argc, _tchar* argv[]) {     cimglist<unsigned char> init_faces;     cimg<float> avg_face;     cimglist<float> face_diffs;      //code reading in face images, creating average image     //and creating difference images      cimg<double> covariance_matrix(face_diffs.size(), face_diffs.size());     eigen::matrixxcd cov_matrix(face_diffs.size(), face_diffs.size());      //compute covariance matrix using pictures show      //difference each input average     compute_covariance(face_diffs, covariance_matrix);      //convert matrix cimg eigen readable matrix     convert_eigenlib(covariance_matrix, cov_matrix);      //create eigensolver object, passing covariance matrix     eigen::complexeigensolver<eigen::matrixxcd> eig_solve(cov_matrix);     //compute eigenvalues of covariance matrix     eigen::vectorxcd eig_vals = eig_solve.eigenvalues();      //this line produces 25 element long vector of eigenvalues,     //all of are: -6.27744e+066     cout << "eigenvalues:" << endl << eig_vals << endl;      return 0; }  void compute_covariance(cimglist<float> face_diffs, cimg<double> &covariance_matrix) {     cimglist<float> transpose;     float temp = 0;      (unsigned int = 0; < face_diffs.size(); i++)     {         transpose.insert(face_diffs(i).get_transpose());     }      transpose.display();      (unsigned int x = 0; x < face_diffs.size(); x++)     {         (unsigned int y = 0; y < face_diffs.size(); y++)         {             covariance_matrix(x, y, 0, 0) = transpose(x).dot(face_diffs(y));         }     } }  void convert_eigenlib(cimg<double> covariance_matrix, eigen::matrixxcd &cov_matrix) {     (int x = 0; x < covariance_matrix.width(); x++)     {         (int y = 0; y < covariance_matrix.height(); y++)         {             cov_matrix(y, x) = covariance_matrix(x, y, 1, 1);         }     } } 

i believe issue contained in 1 of 2 user defined functions shown, every other step gives me expected outputs.


Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -