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.