这可能是一个相当简单的任务,但我不确定如何继续,因为我不熟悉C ++中的opencv。
我的灵感来自this code。
我的想法是拍摄单张图像,对RGB强度进行PCA,并将RGB数据投影到灰度的3个主要成分上。
我遇到的第一个问题是如何为PCA设置矩阵。到目前为止,这是我的代码:
#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;
}
所以如果你能帮我实现convertForPCA功能。该函数应该采用图像矩阵并返回n乘3浮点矩阵,其中n是原始图像中的像素数。
我想我可以继续其余的工作,但如果我遇到困难而无法找到答案,可能会发布更多问题。