重塑PCA的opencv图像

时间:2016-04-16 15:33:26

标签: c++ opencv reshape

这可能是一个相当简单的任务,但我不确定如何继续,因为我不熟悉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是原始图像中的像素数。

我想我可以继续其余的工作,但如果我遇到困难而无法找到答案,可能会发布更多问题。

1 个答案:

答案 0 :(得分:1)

我解决了我的问题,我把the solution放在github上以防万一有人后来遇到这个问题。