2016-04-16 10 views
0

Dies ist wahrscheinlich eine ziemlich einfache Aufgabe, aber ich bin unsicher, was zu tun ist, da ich neu in C++ Opencv bin.Reshape opencv Bild für PCA

Ich wurde von this code inspiriert.

Die Idee, die ich hatte, war dann, ein einzelnes Bild zu machen, PCA auf den RGB-Intensitäten zu machen und die Projektion der RGB-Daten auf die 3 Hauptkomponenten in Graustufen zu visualisieren.

Das erste Problem, auf das ich gestoßen bin, ist, wie man die Matrix für PCA einrichtet. Hier ist mein Code so weit:

#include <opencv2/opencv.hpp> 
#include <iostream> 

using namespace cv; 
using namespace std; 

int main() 
{ 
    // Open another image 
    Mat image, imageMat; 
    image= imread("images/0.jpg"); 

    imageMat = convertForPCA(image); 

    // Do pca and visualize channels in grayscale. 
    // ... 
    return 0; 
} 

Also, wenn Sie mir helfen könnten, ConvertForPCA Funktion zu implementieren. Diese Funktion sollte eine Bildmatrix aufnehmen und eine n mal 3 Float-Matrix zurückgeben, wobei n die Anzahl der Pixel im Originalbild ist.

Ich denke, ich kann mit dem Rest fortfahren, aber werde vielleicht mehr Fragen posten, wenn ich stecken bleibe und keine Antwort finden kann.

Antwort

0

Ich löste mein Problem, und ich setze the solution auf github, falls jemand später darauf eingeht.